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将字母转换成同一类进行排序。
原文:http://www.cnblogs.com/bewolf/p/4368368.html