leetcode 151 —— Reverse Words in a String
来源:互联网 发布:win7 64位数据库下载 编辑:程序博客网 时间:2024/05/29 15:08
Given an input string, reverse the string word by word.
For example,
Given s = "the sky is blue
",
return "blue is sky the
".
Update (2015-02-12):
For C programmers: Try to solve it in-place in O(1) space.
思路:
class Solution {public:void reverseWords(string &s) {int left = 0;while (left < s.size() && s[left] == ' ') {s.erase(left, 1);}int right = s.size() - 1;while (right >= 0 && s[right] == ' ') {s.erase(right, 1);right = s.size() - 1;}eraseMidEmp(s);int n = s.size();for (int i = 0; i < n / 2; i++) {char tmp = s[i];s[i] = s[n - 1 - i];s[n - 1 - i] = tmp;}cout << s << endl;int j = 0;while (j < n) {int cnt = 0;while (j + cnt<n && s[j + cnt] != ' ') {cnt++;}if (cnt > 1) {reverseOneWord(s, j, j + cnt - 1);j += cnt;}else {j++;}}}void reverseOneWord(string &s, int start, int end) {int n = (end - start + 1) / 2;for (int i = 0; i < n; i++) {char tmp = s[start + i];s[start + i] = s[end - i];s[end - i] = tmp;}}void eraseMidEmp(string &s) {int i = 0;while (i + 1 < s.size()) {if (s[i] == ' '&&s[i + 1] == ' ') {s.erase(i, 1);}elsei++;}}};
0 0
- leetcode 151 —— Reverse Words in a String
- LeetCode(151)Reverse Words in a String
- leetcode 151 Reverse Words in a String
- LeetCode: Reverse Words in a String [151]
- [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
- Reverse Words in a String - LeetCode 151
- 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
- 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
- Vmware Tools安装出错的解决方法
- 从尾到头打印链表
- 链表的实现(二)
- Flex SuperTabNavigator中SuperTab关闭按钮样式修改
- 对比jQuery和AngularJS的不同思维模
- leetcode 151 —— Reverse Words in a String
- Android 代码混淆的实践
- Channel Allocation(POJ--1129
- myEclipse 控制台输出日子中问乱码的解决办法
- AJAX中不跨域和跨域问题的解决方法
- 使用XShall对Linux虚拟机上传下载文件
- C++对象模型——站在对象模型的尖端 (第七章)
- JAVA 生成 UUID
- linux上svn基本操作