• [leetcode-151-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".

    Update (2015-02-12):
    For C programmers: Try to solve it in-place in O(1) space.

    想法很朴素:

    1.将单词分出来。

    2.类似头插法,将单词插入到新的字符串,就能反过来了。

        void reverseWords(string &s)
        {
            if (s == "")return;
            int i = 0;
            string temp="";
            string temp2 = "";         
            while (s[i]!='')
            {
                if (s[i] != ' ')
                {
                    temp.append(s.substr(i, 1));
                    i++;
                }
                else//空格
                {
                    if (temp != "")
                    {
                        temp2.insert(0, " ");
                        temp2.insert(0, temp);
                        temp.clear();
                    }                
                    i++;             
                }
            }
            temp2.insert(0, " ");
            temp2.insert(0, temp);
            
            cout << temp2.c_str() << endl;
            temp2.erase(temp2.size()-1, 1);//擦去最后一个空格
            cout << temp2.c_str() << endl;
            
            s.clear();
            s = temp2;
            i = s.size() - 1;
            while (s[i] == ' ')//擦除结尾空格
            {
                s.erase(i, 1);
                i = s.size() - 1;
            }
            i = 0;
             while (s[i] == ' ')//擦除前面空格
             {
                 s.erase(i, 1);             
             }
        }
  • 相关阅读:
    10.cocos2dx C++为Sprite添加触摸事件监听器
    9.多彩的幕布layer
    8.ZOrder
    7.cocos精灵创建和绘制
    6.cocos2d设置定时器
    5.cocos2d锚点
    4.cocos场景和层的调用
    文件导入导出
    两个整数相乘是否超限
    倒置字符串函数reverse
  • 原文地址:https://www.cnblogs.com/hellowooorld/p/6478977.html
Copyright © 2020-2023  润新知