Reverse Words in a String

亦凉 2022-01-07 10:03 327阅读 0赞

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

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

  1. 1 Class Solution{
  2. 2 public:
  3. 3 void reverseWords(string &s){
  4. 4 char c[1]={
  5. ' '};
  6. 5 vector<string> slist = split(s,c);
  7. 6 reverse(slist.begin(),slist.end());
  8. 7 s.clear();
  9. 8 for(int i = 0 ; i < slist.size(); ++i){
  10. 9 s = s + slist[i] + " ";
  11. 10 }
  12. 11 s = s.substr(0,s.size()-1);
  13. 12 }
  14. 13 vector<string> split(string &s, const char* c){
  15. 14 char *p;
  16. 15 vector<string> rst;
  17. 16 char *cstr = new char[s.length()+1];
  18. 17 strcpy(cstr,s.c_str());
  19. 18 p = strtok(cstr,c);
  20. 19 while(p){
  21. 20 rst.push_back(p);
  22. 21 p = strtok(NULL,c);
  23. 22 }
  24. 23 return rst;
  25. 24 }
  26. 25 }

TIPS:

  1. LINE9 ,不可用s.push_back。因为string相当于一个字符的容器,push_back的参数只能是字符

  2. LINE11: substr并不改变string,返回值为string

转载于:https://www.cnblogs.com/nnoth/p/3742634.html

发表评论

表情:
评论列表 (有 0 条评论,327人围观)

还没有评论,来说两句吧...

相关阅读