class Solution {
public:
void reverseString(vector<char>& s)
{
int num = s.size();
int left = 0;
int right = 0;
if (num % 2 == 0)
{
left = num / 2 - 1;
right = num / 2;
}
else
{
left = num / 2;
right = num / 2;
}
while (left >= 0)
{
char tmp = s[left];
s[left] = s[right];
s[right] = tmp;
left--;
right++;
}
}
};
54. 替换数字(第八期模拟笔试)
55. 右旋字符串(第八期模拟笔试)
#include <iostream>
#include <stdio.h>
#include <string>
using namespace std;
string reverseString(string s)
{
int num = s.size();
int left = 0;
int right = 0;
if (num % 2 == 0)
{
left = num / 2 - 1;
right = num / 2;
}
else
{
left = num / 2;
right = num / 2;
}
while (left >= 0)
{
char tmp = s[left];
s[left] = s[right];
s[right] = tmp;
left--;
right++;
}
return s;
}
string rot(string s, int k)
{
string arr = reverseString(s);
int left = 0;
int right = k-1;
while (left<right)
{
char tmp = arr[left];
arr[left] = arr[right];
arr[right] = tmp;
left++;
right--;
}
left = k;
right = arr.size()-1;
while (left < right)
{
char tmp = arr[left];
arr[left] = arr[right];
arr[right] = tmp;
left++;
right--;
}
return arr;
}
int main()
{
int k;
while (cin >> k)
{
if (getchar() == '\n') break;
}
string s;
while (cin >> s)
{
if (getchar() == '\n') break;
}
string ans = rot(s, k);
cout << ans << endl;
}