string提炼 类型

缘起:
该类型是从sring中提炼出想要的string,比如去掉空格,不合要求的字符,然后结果输出一个新的提炼后的字符串。可以用一个string vector在遍历原来string的时候,把每个比如空格之前的字符放入这个vector中,然后整理这个vector,得出想要的字符串。
步骤:
1,遍历原来string,在遍历中去掉不合法的字符。
坑点:
1,注意index不要越界,只要有while的地方,条件里一定要带着 i < size.
2,  在while里面的while结束,要判断if(i == size), 然后进行相应操作。
3,最外面的while结束后,在return前,想想是否需要额外操作处理结尾处。
题目:
53. Reverse Words in a String
421. Simplify Path
1394. Goat Latin

string simplifyPath(string &path) { // write your code here // 主体就是找 / 之间的string const int size = path.size(); if(size == 0){ return "/"; } std::vector<string> strs; int i = 0; while(i < size){ while(i < size && path[i] == '/'){ i++; } if(i == size){ break; } int start = i; while(i < size && path[i] != '/'){ i++; } string sub = path.substr(start, i - start); if(sub == "."){ continue; } else if(sub == ".."){ if(!strs.empty()){ strs.pop_back(); } } else{ strs.push_back(sub); } } if(strs.size() == 0){ return "/"; } string res = ""; for(int i = 0; i < strs.size(); i++){ res += "/" + strs[i]; } return res; }

Comments

Popular posts from this blog

Amazon OA 763. Partition Labels

1427. Split Array into Fibonacci Sequence

05/25 周一