Leetcode#557. Reverse Words in a String III

题目描述:给定一个字符串,将字符串的每一个单词自身反转,而单词之间的顺序不变,如 “Let’s take LeetCode contest” -> “s’teL ekat edoCteeL tsetnoc”

解题思路:有了之前 Reverse Words in a String 的启发,这道题我们依然使用栈,更加简单。

  • 字符按顺序入栈,直到遇到空格,此时栈中元素全部出栈
  • 一直遍历到字符串末尾,执行上一步
  • 注意最后要将栈中元素全部出栈
class Solution {
public:
    string reverseWords(string s) 
    {
        stack<char> sta;
        string ans = "";
        for(int i = 0; i < s.length(); ++i)
        {
            if(s[i] != ' ')
                sta.push(s[i]);
            else
            {
                while(!sta.empty())
                {
                    ans += sta.top();
                    sta.pop();
                }
                ans += ' ';
            }
        }
         while(!sta.empty())
        {
            ans += sta.top();
            sta.pop();
        }
        return ans;
    }
};
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_20177327/article/details/79963761
上一篇Leetcode#151. Reverse Words in a String
下一篇Leetcode#344. Reverse String
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭