题解 | #牛群消息传递#

牛群消息传递

https://www.nowcoder.com/practice/28df6c40150a40b49c9c4d4ae1dd675d

知识点

字符串 遍历 STL

思路

从前往后遍历一次字符串,将单词从空格处截断,并且放入栈中。利用栈先进后出的原理,我们可以得到逆序的单词。注意特判多个空格,因为题目中说单词间的空格数不会超过一个,但是实际上报错的样例就存在多个空格

代码c++

#include <unistd.h>
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param s string字符串 
     * @return string字符串
     */
    string reverseWords(string s) {
        string k="";
        string temp="";
        stack<string>st;
        int flag=0;
        for(int i=0;i<s.length();i++ )
        {
            if(s[i]!=' ')
            {
                temp+=s[i];
                flag=1;
            }
            else if(s[i]==' '&&flag==1){
                flag=0;
            st.push(temp);
            temp="";      
            }
        }
        st.push(temp);
        while(!st.empty())
        {
            k+=st.top();
            st.pop();
            if(!st.empty())k+=' ';
        }
        string ans;
        for(int i=0;i<k.size();i++)
        {
            if(s[0]==' '&&i==0){}
            else if(s[k.length()-1]==' '&&i==k.length()-1){}
            else ans+=k[i];      
        }
      return ans;

        // write code here
    }
};
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务