字符串
Sunny君
这个作者很懒,什么都没留下…
展开
-
字符串的排列
题目:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所排列出来的所有字符串abc、acb、bac、bca、cab和cba。分析:我们把一个字符串看成两部分组成:第一部分为它的第一个字符,第二部分是后面的所有字符。我们可以看成两步:首先求所有可能出现在第一个位置的字符,即把第一个字符和后面所有字符交换。第二步固定一个字符,求后面所有字符的排列。这个原创 2018-01-09 19:43:00 · 144 阅读 · 0 评论 -
把字符串转换成整数
题目:写一个函数StrToInt,实现把字符串转换成整数的功能。不能使用atoi或者其他类似的库函数。测试用例:功能测试(输入的字符串表示正数、负数、0)边界值测试(最大的正整数、最小的负整数)特殊输入测试(输入的字符串为NULL指针、输入字符串为空字符串、输入的字符串中有非数字字符等)代码如下: enum Status{kValid=0,kInvalid};int g_nS原创 2018-01-22 11:22:05 · 200 阅读 · 0 评论 -
第一次出现一次的字符
题目:在字符串中找出第一个出现一次的字符。如输入"abaccdeff",则输出'b'。分析:最直观的解法从头扫描这个字符串中的每一个字符。当访问到某个字符的时候拿这个字符和后面的字符相比较,如果在后面没有发现重复的字符,那该字符就是只出现一次的字符。如果字符串有n个字符,每一个字符可能与后面的O(n)个字符比较,一次这种思路的时间复杂度是O(n^2)。另外一种解法就是使用哈希表,实现哈希表原创 2018-01-16 21:56:42 · 239 阅读 · 0 评论 -
翻转单词顺序VS左旋转字符串
题目一:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串“I am a student.”,则输出"student. a am I"。分析:第一步翻转句子中所有的字符。比如翻转“I am a student.”中的所有字符“.tneduts a ma I”,此时不但翻转了句子单词的顺序,单词内部的字符顺序也被翻转了.第二步再原创 2018-01-19 22:59:27 · 188 阅读 · 0 评论