C++ 写leetcode遇到的一些问题总结Reverse Words in a String

来源:互联网 发布:网络歌曲视频大全 编辑:程序博客网 时间:2024/05/17 09:39

这一题写起来很快,但是还是有些细节没有考虑好,拖慢了编程时间。

本题需要注意的问题:

1、删除字符串开始的所有空格;

2、删除字符串结尾的所有空格;

3、删除字符串中间多余的空格;

这题容易只考虑第一个条件忽略后两个条件。


代码:

运行时间:12ms

class Solution {public:    void reverseWords(string &s) {        if(s == "") return ;            string::iterator itPre = s.begin();                while(itPre != s.end()){            if(*itPre != ' ')                break;            s.erase(itPre);        }                reverse(s.begin(), s.end());        itPre = s.begin();                while(itPre != s.end()){            if(*itPre != ' ')                break;            s.erase(itPre);        }        itPre = s.begin();        string::iterator itBack = s.end();                while(itPre != s.end()){            itBack = find(itPre, s.end(), ' ');            reverse(itPre, itBack);                        if(itBack != s.end()){                itPre = itBack + 1;                itBack = itPre;                while(*itBack == ' '){                    s.erase(itBack);                }            }            else                 itPre = itBack;        }    }};


0 0
原创粉丝点击