找到两个字符串的公共字符,并按照其中一个的排序
2011-09-30 16:14
267 查看
题目:写一函数f(a,b),它带有两个字符串参数并返回一串字符,该字符串只包含在两个串中都有的并按照在a中的顺序。写一个版本算法复杂度O(N^2)和一个O(N) 。
O(N^2):
对于a中的每个字符,遍历b中的每个字符,如果相同,则拷贝到新字符串中。
O(N):
首先使用b中的字符建立一个hash_map,对于a中的每个字符,检测hash_map中是否存在,如果存在则拷贝到新字符串中。
O(N^2):
对于a中的每个字符,遍历b中的每个字符,如果相同,则拷贝到新字符串中。
O(N):
首先使用b中的字符建立一个hash_map,对于a中的每个字符,检测hash_map中是否存在,如果存在则拷贝到新字符串中。
相关文章推荐
- 有一个长度不大于40的字符串,已知其中包含两个字符‘A',求处于这两个字符之间的字符的个数,并把这些字符依次打印出来
- 给定两个字符串和一个字典,从头到尾找到最短变换序列的长度,使得:一次只能改变一个字符每个中间词必须存在于字典中
- 从键盘接收一个字符串, 程序对其中所有字符进行排序,例如键盘输入: helloitcast程序打印:acehillostt
- 将一个字符串中的字符按照ASCII码从小到大的顺序排序
- 任意输入一个字符串,将其中的字符按ASCII码值从小到大重新排序
- 一个字符串(其中包含两个A),打印出两个A中间的字符
- C++输入一个字符串,把其中的字符按照逆序输出的两种方法
- 给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。这里规定大小写为不同字符,且考虑字符串重点空格。 给定一个string stringA和一个string stri
- 转:从键盘输入一个字符串,按照字符顺序从小到大进行排序,并要求删除重复的的字符。
- 如何将两个有重复字符在内的字符串合并成一个,并且排序
- C++输入一个字符串,把其中的字符按照逆序输出的两种方法
- 将字符串按照指定的长度进行分割(一个中文视为两个字符)
- RGB排序,一个字符串,里面只有三种字符R G B,所有的R都在G的前面,所有的G都在B的前面。将给定字符串按照此规律排序。要求不允许用辅助空间,复杂度控制在O(N)。
- 小算法:给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串s首先
- 编写一个类,其中包含一个排序的方法Sort(),当传入的是一串整数,就按照从小到大的顺序输出,如果传入的是一个字符串,就将字符串反序输出。
- 传入两个字符串,确认其中一个字符串重新排序后能否变为另一个字符串(也就是两个字符串相等)
- C++输入一个字符串,把其中的字符按照逆序输出的两种方法
- C++输入一个字符串,把其中的字符按照逆序输出的两种方法解析
- C++输入一个字符串,把其中的字符按照逆序输出的两种方法
- )RGB排序,一个字符串,里面只有三种字符R G B,所有的R都在G的前面,所有的G都在B的前面。将给定字符串按照此规律排序。要求不允许用辅助空间,复杂度控制在O(N)。遍历一遍就排好序。