STL真的好用!!STL中没有split()函数,需要自己手动实现(这一点差评)!
#include <algorithm> #include <cctype> class Solution { public: // 自定义转换规则 static char myfun(char ch){ if(isalpha(ch)){ // 是字母 if(islower(ch)){ ch = toupper(ch); }else{ ch = tolower(ch); } } return ch; } // 字符串分割 vector<string> split(string str, string delim){ vector<string> res; int pos = str.find(delim); while(pos != -1){ res.push_back(str.substr(0, pos)); str = str.substr(pos + 1); pos = str.find(delim); } if(!str.empty()){ res.push_back(str); } return res; } string trans(string s, int n) { // 大小写转换 transform(s.begin(), s.end(), s.begin(), myfun); vector<string> arrStr = split(s, " "); reverse(arrStr.begin(), arrStr.end()); // 以空格进行拼接 string res = ""; for(int i = 0; i < arrStr.size(); i ++){ res += arrStr[i]; if(i == arrStr.size() - 1){ continue; } res += " "; } if(s[s.size() - 1] == ' '){ // cout << "Yes " <<endl; res.insert(0, " "); } return res; } };