648. Replace Words

来源:互联网 发布:机器人编程入门学生 编辑:程序博客网 时间:2024/05/27 01:45

简单,但是想法有些不对,不应该把string分割和查找放到一起,应该先分割,再查找,这样比较容易处理

class Solution {public:    string replaceWords(vector<string>& dict, string sentence) {        set<string> newDict;        for(int i =0;i<dict.size();i++)            newDict.insert(dict[i]);        //for (std::set<string>::iterator it=newDict.begin(); it!=newDict.end(); ++it)        //    std::cout << ' ' << *it;        string result = "";        int start = 0;        int end = 0;        string temp = "";        while(start<sentence.size())        {            while(start<sentence.size()&&sentence[start]==' ')                start++;            if (start>=sentence.size())                break;            //until sentence[start] == charactor            end = start;            while(end<sentence.size()&&sentence[end]!=' ')            {                temp = sentence.substr(start,end+1-start);                //cout<<temp<<endl;                if (newDict.find(temp)!=newDict.end()){                    result += temp;                    break;                }                end++;            }            if(end>=sentence.size()||sentence[end]==' ')                result += temp;            while(end<sentence.size()&&sentence[end]!=' ')                end++;            start = end;            result += " ";        }        return result.substr(0,result.size()-1); // remove last ' '    }};
原创粉丝点击