题目描述:
输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. “,则输出"student. a am I”。
示例:
思路:
定义两个字符串,第一个用来储存返回对象,第一个动态存储单词。遍历字符串。时间复杂度为O(n)
代码:
class Solution {
public String reverseWords(String s) {
if(s.length()==0){
return "";
}
if(s.length()==1){
if(s.charAt(0)==' '){
return "";
}
return s;
}
//先定义一个空的字符串
String ss = "";
String a = "";
for(int i = 0;i<s.length();i++){
if(s.charAt(i)==' '){
if(ss==""){
ss = a;
a = "";
}else{
if(a != ""){
ss = a + " " + ss;
a = "";
}
}
}else{
a+=s.charAt(i);
}
}
if(s.charAt(s.length()-1) != ' '){
if(ss==""){
ss = a;
a = "";
}else{
if(a != ""){
ss = a + " " + ss;
a = "";
}
}
}
return ss;
}
}
结果:
把所有的特例都排除了。。。。这真的是。。。