题目描述:
557. 反转字符串中的单词 III - 力扣(LeetCode) (leetcode-cn.com)
Java代码:
class Solution { //在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。
public String reverseWords(String s) { //StringBuilder
if(s==null||s.length()<2)return s;
StringBuffer S=new StringBuffer(s),answer=new StringBuffer();
int offset=0,blankIndex;
while((blankIndex=S.indexOf(" ",offset))!=-1){
answer.append(new StringBuffer(S.substring(offset,blankIndex)).reverse()).append(' '); //注意:要有空格
offset=blankIndex+1;
}
answer.append(new StringBuffer(S.substring(offset,S.length())).reverse()); //最后一个单词:含只有一个单词的情况
return answer.toString();
}
}
Java代码二:StringBuilder一般要比StringBuffer快!
class Solution { //在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。
public String reverseWords(String s) { //StringBuilder
if(s==null||s.length()<2)return s;
StringBuilder S=new StringBuilder(s),answer=new StringBuilder();
int offset=0,blankIndex;
while((blankIndex=S.indexOf(" ",offset))!=-1){
answer.append(new StringBuilder(S.substring(offset,blankIndex)).reverse()).append(' '); //注意:要有空格
offset=blankIndex+1;
}
answer.append(new StringBuilder(S.substring(offset,S.length())).reverse()); //最后一个单词:含只有一个单词的情况
return answer.toString();
}
}