一、學習要點:
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;
}
```