题目描述
输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. “,则输出"student. a am I”。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/fan-zhuan-dan-ci-shun-xu-lcof
Java(双指针)
class Solution {
public String reverseWords(String s) {
s = s.trim();
int j = s.length() - 1, i = j;
StringBuilder res = new StringBuilder();
while(i >= 0){
//找到第一个空格位置
while(i >= 0 && s.charAt(i) != ' ')
i--;
res.append(s.substring(i + 1, j + 1) + " ");
//找到下一个单词末尾的索引
while(i >=0 && s.charAt(i) == ' ')
i--;
j = i;
}
return res.toString().trim();
}
}