题目描述
牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student.
a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a
student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?
思路:
Step1. 首先整体翻转得到: “.tneduts a ma I”
Step2. 然后对每一个单词进行翻转,得到:“student. a am I”
Java 代码如下:
public class Solution {
public String ReverseSentence(String str) {
String s1 = reverse(str);
int len = s1.length();
StringBuilder result = new StringBuilder();
StringBuilder sb = new StringBuilder();
for(int i = 0; i < len; i++) {
char c = s1.charAt(i);
if(' ' != c) {
sb.append(c);
}else {
result.append(reverse(sb.toString())).append(" ");
sb = new StringBuilder();
}
}
result.append(reverse(sb.toString()));
return result.toString();
}
public String reverse(String str) {
StringBuilder sb = new StringBuilder(str);
return sb.reverse().toString();
}
}