題目要求
思路
1.首先根據ASCII的規則,把字符串大小寫替換,空格保持不變
2.將整個字符串進行翻轉
3.以空格為區間,將區間內的字符串進行翻轉,其中翻轉的函數reverse()
代碼實現
class Solution {
public:string trans(string s, int n) {string str = "";for(int i = 0; i < n; i++){if(s[i] >= 'A' && s[i] <= 'Z')str += s[i] - 'A' + 'a';else if(s[i] >= 'a' && s[i] <= 'z')str += s[i] - 'a' + 'A';elsestr += s[i];}reverse(str.begin(), str.end());for(int i = 0; i < n; i++){int j = i;while(j < n && str[j] != ' ')j++;reverse(str.begin()+i, str.begin()+j);i = j;}return str;}
};