【剣指offer】面接問題58-II.左回転文字列
問題を解く構想.
3回の反転は、まずnが境界線の位置から、0~n-1を1回反転し、n-1~length-1を1回反転して文字列sを反転する
コード#コード#
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--;
}
}
};