您的位置:首页 > 其它

557. Reverse Words in a String III

2017-07-11 14:29 441 查看
Given a string, you need to reverse the order of characters in each word within a sentence while still preserving whitespace and initial word order.

Example 1:

Input: "Let's take LeetCode contest"
Output: "s'teL ekat edoCteeL tsetnoc"


Note: In the string, each word is separated by single space and there will not be any extra space in the string.
public class Solution {
public String reverseWords(String s) {
Stack<String> a=new Stack<>();
StringBuffer b=new StringBuffer();
for(Character i:s.toCharArray())
{
if(i!=' ')
{
a.push(i.toString());
}
else{
while(!a.isEmpty())b.append(a.pop());
b.append(" ");
}
}
while(!a.isEmpty())b.append(a.pop());//这里是倒置最后一个单词
return b.toString();
}
}
我的方法在于考虑了存在多个空格的情况,大神的想法更简单,一般不用考虑多个空格
public String reverseWords(String s) {
String[] strs = s.split(" ");//将字符串切割成多个单词
StringBuffer sb = new StringBuffer();
for(String str: strs){
StringBuffer temp = new StringBuffer(str);
sb.append(temp.reverse());//倒置单词
sb.append(" ");
}
sb.setLength(sb.length()-1);//设置长度,由于上面多了一个空格
return sb.toString();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: