zoukankan      html  css  js  c++  java
  • Reverse Words in a String

    Given an input string, reverse the string word by word.

    For example,
    Given s = "the sky is blue",
    return "blue is sky the".

    Clarification:

    • What constitutes a word?
      A sequence of non-space characters constitutes a word.
    • Could the input string contain leading or trailing spaces?
      Yes. However, your reversed string should not contain leading or trailing spaces.
    • How about multiple spaces between two words?
      Reduce them to a single space in the reversed string.
    #include "stdafx.h"
    #include <string>
    #include <iostream>
    using namespace std;
    
    
    class Solution{
    public:
        void reverseWords(string &s)
        {
            string revese, tmp;
            int k = 0;
            while (s[k] == ' ')    //ignore the leading spaces
            {
                k++;
            }
    
            for (int i = k; i < s.size();)
            {
                if (s[i] != ' ')
                {
                    tmp += s[i++];
                }
                else 
                {
                    while (s[i] == ' ') // reduce the spaces to a single space
                        i++;
                    if (i == s.size())
                        break;
                    revese = " " + tmp + revese;
                    tmp = "";
                }
            }
            s = tmp + revese;
        };
    };
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        Solution *sln = new Solution();
        string s = "  hello dd  ";
        sln->reverseWords(s);
        cout << s << endl;
    
        return 0;
    }
  • 相关阅读:
    react native
    快速幂模板
    Java异常归纳
    Java环境变量配置
    过滤器
    cookie和session页面随机数和防止重复提交
    javabean&el&jstl
    servlet&jsp
    Tomcat和Servlet入门
    网络编程
  • 原文地址:https://www.cnblogs.com/pengpenghappy/p/3861542.html
Copyright © 2011-2022 走看看