【剣指offer】面接問題58-II.左回転文字列


問題を解く構想.
3回の反転は、まずnが境界線の位置から、0~n-1を1回反転し、n-1~length-1を1回反転して文字列sを反転する
コード#コード#
class Solution {
     
public:
	string reverseLeftWords(string s, int n) {
     
		//  
		//    n<0          
		if (s.size() == 0||n<0) return "";
		//   n         
		Reverse(s, 0, n-1);
		Reverse(s, n, s.size() - 1);
		//      s
		Reverse(s, 0, s.size() - 1);
		return s;
	}
	void Reverse(string& s, int pBegin, int pEnd)
	{
     
		while (pBegin<pEnd)
		{
     
			char temp = s[pBegin];
			s[pBegin] = s[pEnd];
			s[pEnd] = temp;
			pBegin++, pEnd--;
		}
	}
};