题目:
牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?
思路:
将str各个单词转换为数组元素,利用for循环,将其颠倒装进StringBuilder
Java
package nowcoder;
public class S44_ReverseSentence {
public String ReverseSentence(String str){
if (str.trim().equals(""))
return str;
StringBuilder sb = new StringBuilder();
//切分str,依据空格
String[] buffer = str.split(" ");
for (int i=buffer.length-1;i>=0;i--){
sb.append(buffer[i]);
if (i > 0)
sb.append(" ");
}
return sb.toString();
}
public static void main(String[] args){
S44_ReverseSentence s44 = new S44_ReverseSentence();
String str = "student. a am I";
System.out.println(s44.ReverseSentence(str));
}
}
Python
class ReverseSentence:
def ReverseSentence(self,str):
return " ".join(str.split(" ")[::-1])
if __name__ == '__main__':
test = ReverseSentence()
str = "student. a am I"
print(test.ReverseSentence(str))
或者
class ReverseSentence:
def ReverseSentence(self,str):
buffer = str.split(" ")
res = ""
for i in range(len(buffer)-1, -1, -1):
res += buffer[i]
if i>0:
res += " "
return res
if __name__ == '__main__':
test = ReverseSentence()
str = "student. a am I"
print(test.ReverseSentence(str))