题解 | #字符串变形#
字符串变形
https://www.nowcoder.com/practice/c3120c1c1bc44ad986259c0cf0f0b80e
class Solution { public: string trans(string s, int n) { // write code here for (int i = 0; i < n; i++) { if (s[i] >= 'a' && s[i] <= 'z') s[i] = toupper(s[i]); else s[i] = tolower(s[i]); } reverse(s.begin(), s.end()); for (int i = 0, j = 0; i < n; i++) { if (s[i] != ' ') { j = i; while (isalnum(s[j])) j++; reverse(s.begin() + i, s.begin() + j); i = j; } } return s; } };
- 思路:大小写转换+翻转单词
- 1、先转换大小写
- 2、翻转整个字符串,然后翻转每个单词
- 时间复杂度:O(n)
- 空间复杂度:O(n)