题解 | #字符串变形#
字符串变形
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)
