您的位置:首页 > 其它

leetcode:Reverse Words in a String

2014-06-13 16:22 183 查看
翻转单词,解析出字符串里面的每一个单词,然后将其逆序输出。所以本题的关键是怎么解析出每一串的单词

定义两个字针i,j,i字针总是指向单词的开头(过滤掉空格字符),j字针指向字针i开头的之后字符串中的第一个空格符,那么i-j间的就是一个单词,但是遍历到最后

需要注意j不能超过字符串的长度,遍历结束之后还是要再判断一次有没有漏掉最后一个单词

public class Solution {
public String reverseWords(String s) {
char[] str = s.toCharArray();
List<String> list = new ArrayList<>();
int i = 0,j = 0;
while(i < str.length && str[i] == ' ') i++;
for( j = i + 1; j < str.length; ){
while(j < str.length && str[j] != ' ')j++;
list.add(new String(str, i ,j - i));
i = j;
while(i < str.length && str[i] == ' ') i++;
j = i + 1;
}
if(i < str.length && j >= str.length){
list.add(new String(str, i, j - i));
}
StringBuilder sb = new StringBuilder();
for(i = list.size() - 1; i >= 1; --i){
sb.append(list.get(i));
sb.append(' ');
}
if(list.size() != 0)
sb.append(list.get(0));
return sb.toString();
}
void reverse(List list){

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: