定間隔字符翻轉(Reverse String II)

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章