给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
示例:
输入:“Let’s take LeetCode contest”
输出:“s’teL ekat edoCteeL tsetnoc”
来源:力扣(LeetCode)
解法:新建一个字符串buffer,从头开始扫原字符串,扫到空格就停下把之前的部分逆序放入buffer
class Solution {
public String reverseWords(String s) {
StringBuffer res=new StringBuffer();
int i=0,n=s.length();
while(i<n){
int start=i;
while(i<n&&s.charAt(i)!=' '){
i++;
}
for(int j=start;j<i;j++){
res.append(s.charAt(start+i-1-j));
}
while(i<n&&s.charAt(i)==' '){
i++;
res.append(' ');
}
}
return res.toString();
}
}