[LeetCode]151. 颠倒字符串中的单词(java实现)两步翻转
1. 题目
2. 读题(需要重点注意的东西)
思路(双指针):
要求:
-
翻转单词,即前面的单词放到后面,后面的单词放到前面
-
每个单词间用一个空格隔开
解题步骤:
-
倒着遍历每个单词,截出每个单词
-
将该单词存储在新字符串中,每个单词后添加一个空格
-
删除尾部的空格
3. 解法
---------------------------------------------------解法---------------------------------------------------
class Solution {
public String reverseWords(String s) {
String res = "";
int n = s.length();
for(int i = n - 1,j = n - 1;i >= 0; i = j){
while(i >= 0 && s.charAt(i) == ' ') i--;
j = i;
while(j >= 0 && s.charAt(j) != ' ') j--;
String temp = s.substring(j+1,i+1);
res += temp + ' ';
}
// trim(): 删除头尾的空格
return res.trim();
}
}
可能存在的问题: