剑指 Offer 58 - I. 翻转单词顺序
题目描述
输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. “,则输出"student. a am I”。
解答
class Solution {
public String reverseWords(String s) {
StringBuilder sb = new StringBuilder();
int i = 0;
while(i < s.length()){
StringBuilder mid = new StringBuilder();
while(i < s.length()&&s.charAt(i) == ' '){
i++;
}
while(i < s.length()&&s.charAt(i) != ' '){
mid.append(s.charAt(i));
i++;
}
sb.insert(0,mid.toString());
if(mid.length() > 0){
sb.insert(0," ");
}
}
sb.delete(0,1);
return sb.toString();
}
}