解题思路:
- 反转区间为前n的子串
- 反转区间为n到末尾的子串
- 反转整个字符串
方法一:
class Solution {
public:
void swapNum(string &s, int start, int end)
{
for(int i = start,j = end;i<j;i++,j--)
{
swap(s[i],s[j]);
}
}
string reverseLeftWords(string s, int n) {
swapNum(s,0,n-1);
swapNum(s,n,s.size()-1);
swapNum(s,0,s.size()-1);
return 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;
}
};
该篇博客详细介绍了两种反转字符串中指定子串的方法。方法一是通过交换字符实现,分别反转前n个字符、n到末尾的字符以及整个字符串。方法二是利用STL中的`reverse`函数直接进行三次反转操作。这两种方法都有效地实现了字符串反转功能。
1020

被折叠的 条评论
为什么被折叠?



