代码改变世界

字符串处理技巧

2015-04-20 20:38  itwolf  阅读(297)  评论(0编辑  收藏  举报

1、快速统计字符串中每个字符出现的个数

hash表

2、求两个字符串公共的最长子串长度和子串

双重循环遍历找到长度,同时用二重指针保留住最长长度时候的指针位置

3、求一个字符串中最大的重复子串长度和子串

和2的思路差不多

4、将一个字符串全排列输出

(1)递归 (2)使用STL中的next_permutation

5、将一个字符串的所有组合输出

递归

6、快速将一个整数(或十进制的字符串)转换成radix进制的字符串

整型直接用:char*itoa(int value,char*string,int radix);

十进制字符串转换到二进制字符串:先int atoi(const char *nptr);然后char*itoa(int value,char*string,int radix);

7、找一个字符串中的兄弟字符串

8、删除字符串中特定的一些字符

可以考虑用空间换时间的做法,申请一块新的字符空间,遍历原串,然后将不用删除的字符逐一拷贝到新的字符串中。

9、对大写、小写、数字分别排序,不同类别的字符按某种机制输出

可以考虑先用三个字符串分别存储大写、小写、数字等,先分别排序,然后按照某种机制去输出,输出取出字符串的时候,要注意每个分类的下标,最好设置标志位,而不要重复往后移动。

如果只是大写和小写字母的混合排序的话,可以在排序的时候使用tolower或toupper将字母转换成同一类进行排序。