• LeetCode 翻转字符串里的单词


    给定一个字符串,逐个翻转字符串中的每个单词。

     

    示例 1:

    输入: "the sky is blue"
    输出: "blue is sky the"
    

    示例 2:

    输入: "  hello world!  "
    输出: "world! hello"
    解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。
    

    示例 3:

    输入: "a good   example"
    输出: "example good a"
    解释: 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。

    解法:按要求模拟,首先前面有" "的都要去了,然后开始就是单词了,每碰到一个" "就是一个单词,用栈存储起来就可以了。然后输出的时候从栈当中拿出来输出即可。
    class Solution {
    public:
        string reverseWords(string s) {
            stack<string> str;
            string s0 = "";
            if(s.empty())
            {
                s = "";
                return s;
            }
            for(int i=0;i<s.length();i++)
            {
                if(s[i]!=' ')
                {
                    s0+=s[i];
                    continue;
                }  //得到字符组成字符串。
                else if(!s0.empty())
                {
                    str.push(s0); 
                    s0="";   
                }
            }
            if(!s0.empty())
            {
                str.push(s0);
                s0="";
            }
            while(!str.empty())
            {
                s0+=str.top(); 
                str.pop();
                s0+=" ";
            }
            if(s0.empty())
            {
                s = "";
                return s;
            }
            s0.erase(s0.end()-1);
            s = s0;
            return s;
        }
    };


  • 相关阅读:
    mysql小数和类型转换函数
    concat()用法
    sql修改表名字段名
    having函数,case when与order by
    volatile实现原理与应用
    synchronized的实现原理与应用
    java8策略模式
    centos7快速升级gcc
    一个用户从发起请求到接收到响应,中间经过哪些服务,每个服务做什么事情
    Java注解
  • 原文地址:https://www.cnblogs.com/jkzr/p/10594916.html
Copyright © 2020-2023  润新知