一、学习要点:
1.主要是对剩余字符长度的考虑,大于k的时候,对前k个进行翻转;小于k的时候,对实际个数进行全翻转;本程序中翻转个数用变量x来表示;
二、代码:
#include<stdlib.h>
#include<stdio.h>
#include<string>
using namespace std;
class Solution{
public:
string reverseStr(string s,int k)
{
int n=s.size();
int x=0;
for(int i=0;i<n;)
{
if(n-i>=k){
x=k;
}elseif(n-i<k){
x=n-i;
}
reverse(s.begin()+i,s.begin()+i+x);
if(n-i>2*k){
i+=2*k;
}else{
return s;
}
}
return s;
}
};
int main()
{
string s="abcdefghij";
string s1;
Solution ob;
s1=ob.reverseStr(s,2);
for (string::iterator iter = s1.begin(); iter != s1.end(); iter++)
{
printf("%c,", *iter);
}
system("pause");
return 0;
}
```