提升难度:不能申请额外空间,只能在本串上操作。关键点在于想到利用局部翻转+整体翻转的思想。
时间复杂度:O(n),空间复杂度:O(1)
思路:
- 翻转区间为前n的子串。
- 翻转区间为n到末尾的子串。
- 翻转整个字符串。
- 返回字符串 s。
代码:
class Solution {
public:
string reverseLeftWords(string s, int n) {
reverse(s.begin(), s.begin() + n);
reverse(s.begin() + n, s.end());
reverse(s.begin(), s.end());
return s;
}
};