[Leetcode] Reverse Words in a String
来源:互联网 发布:小学英语课文朗读软件 编辑:程序博客网 时间:2024/05/17 08:37
Given an input string, reverse the string word by word.
For example,
Given s = "the sky is blue
",
return "blue is sky the
".
click to show clarification.
Clarification:
- What constitutes a word?
A sequence of non-space characters constitutes a word. - Could the input string contain leading or trailing spaces?
Yes. However, your reversed string should not contain leading or trailing spaces. - How about multiple spaces between two words?
Reduce them to a single space in the reversed string.
public class Solution { public String reverseWords(String s) { if(s == null) return null; if(s.length() == 0) return s; char[] array = s.toCharArray(); reverse(array, 0, array.length - 1); int index = -1; int start = 0; int space = -1; while(start < array.length && array[start] == ' ') start++; while(start < array.length){ if(index == -1 || array[start] != ' ') array[++index] = array[start++]; else if(array[start] == ' ' && array[index] == ' '){ start++; } else {// array[start] == ' ' && array[index] != ' ' reverse(array, space + 1, index); array[++index] = array[start++]; space = index; } } reverse(array, space + 1, index); if(index == -1) return new String(""); else{ if(index < array.length && array[index] == ' ') return new String(array, 0, index); else return new String(array, 0, index + 1); } } public void reverse(char[] array, int left, int right){ while(left < right){ char temp = array[left]; array[left] = array[right]; array[right] = temp; left++; right--; } }}
Use Java String.split()
public class Solution { public String reverseWords(String s) { if(s == null) return null; if(s.length() == 0) return s; String[] res = s.split(" "); StringBuilder sb = new StringBuilder(""); for(int i = res.length - 1; i >= 0; i--) if(res[i].length() != 0){ sb.append(' '); sb.append(res[i]); } if(sb.length() == 0) return sb.toString(); return sb.substring(1, sb.length()); }}
0 0
- Leetcode - string - Reverse Words in a String
- Reverse words in a String leetcode
- [LeetCode]Reverse Words in a String
- 【LeetCode】Reverse Words in a String
- Reverse Words in a String (LeetCode)
- LeetCode Reverse Words in a String Total
- LeetCode(151)Reverse Words in a String
- Reverse Words in a String -- LeetCode
- leetcode Reverse Words in a String
- LeetCode OJ:Reverse Words in a String
- LeetCode Reverse Words in a String
- 【LeetCode】Reverse Words in a String
- [Leetcode] Reverse Words in a String
- Reverse Words in a String[LeetCode]
- LeetCode OJ :Reverse Words in a String
- Leetcode: Reverse Words in a String
- 【LeetCode】Reverse Words in a String
- 【LeetCode】Reverse Words in a String
- java_IO流
- 第六章 键盘消息
- PHPvod在线视频网站的搭建
- 2.策略模式
- java_GUI
- [Leetcode] Reverse Words in a String
- python进阶五_类(一)
- NYOJ 228 士兵杀敌 五
- 四组件之Activity
- linux整理之压缩解压缩、加密、分卷
- 校园局域网VOD点播系统搭建
- 数据库异常:形参@nNeeValidateMBCared 未声明为OUTPUT参数.
- 重学c语言系列二---(变量)
- 喜多网络专业棋牌游戏网狐6603二次开发,棋牌源码出售,价格低样式多,做好付款