leetcode-151 Reverse Words in a String
2015-03-08 15:53
309 查看
解题思路:
1 O(n) runtime O(n) space
从字符串尾部开始扫描,记录单词的开始和结束位置
写这段代码的时候容易出错,有几个地方要特别注意
2 O(n) runtime O(1) space
两次反转。先将整个句子反转,然后每个单词反转。本来思想比较简单直接,扫描两遍即可O(N)。空格的处理坑死人。 注意处理句子两头的空格,单词间隔中间多个空格的压缩成一个空格。
例如:the sky is blue
第一次反转(整个句子):eulb si yks eht
第二次反转(每个单词):blue is sky the
补充:
关于C语言的字符数组初始化化
char amessage[] = "hello world!"
与 char *pmessage = "hello world!"
的区别,需要注意。
1 O(n) runtime O(n) space
从字符串尾部开始扫描,记录单词的开始和结束位置
<span style="font-family:Microsoft YaHei;font-size:14px;">void reverseWords(char *s) { int len = strlen(s); char *str = (char *)malloc(sizeof(char) * len + 1); int i,j,k,m; j = len; k = 0; for(i = len -1; i >= 0; i--){ if(s[i] == ' '){ j = i; }else if(i == 0 || s[i-1] == ' '){ if(k != 0) str[k++] = ' '; for(m = i; m < j; m++){ str[k++] = s[m]; } } } str[k] = '\0'; strcpy(s,str); //注意,不要使用s = str; }</span>
写这段代码的时候容易出错,有几个地方要特别注意
2 O(n) runtime O(1) space
两次反转。先将整个句子反转,然后每个单词反转。本来思想比较简单直接,扫描两遍即可O(N)。空格的处理坑死人。 注意处理句子两头的空格,单词间隔中间多个空格的压缩成一个空格。
例如:the sky is blue
第一次反转(整个句子):eulb si yks eht
第二次反转(每个单词):blue is sky the
补充:
关于C语言的字符数组初始化化
char amessage[] = "hello world!"
与 char *pmessage = "hello world!"
的区别,需要注意。
相关文章推荐
- Leetcode#151 Reverse Words in a String
- leetcode JAVA Reverse Words in a String 难度系数2-3?最新题151
- LeetCode(151)Reverse Words in a String
- 【LeetCode-面试算法经典-Java实现】【151-Reverse Words in a String(反转字符串中的单词)】
- LeetCode:151_Reverse Words in a String | 字符串中单词的逆反 | Medium
- leetcode[151]:Reverse Words in a String
- leetcode 151: Reverse Words in a String
- Leetcode 151 Reverse Words in a String
- leetcode JAVA Reverse Words in a String 难度系数2-3?最新题151
- leetcode[151]Reverse Words in a String
- LeetCode: Reverse Words in a String [151]
- Reverse Words in a String - LeetCode 151
- Java for LeetCode 151 Reverse Words in a String
- LeetCode151:Reverse Words in a String
- [LeetCode 151] Reverse Words in a String
- Leetcode 151:Reverse Words in a String
- [leetcode 151]Reverse Words in a String
- LeetCode(151) Reverse Words in a String
- leetcode 151 —— Reverse Words in a String
- [leetcode151] Reverse Words in a String