[LeetCode]541. Reverse String II
题目描述
思路
条件判断,符合条件逆转即可
(看答案有一行解决的)
代码
#include <iostream>
#include <string>
using namespace std;;
class Solution {
public:
string reverseStr(string s, int k) {
if (s.size() <= k)
reverse(s.begin(), s.end());
else if (s.size() > k && s.size() < k * 2) {
for (int j = 0; j < k / 2; ++j)
swap(s[j], s[k - j - 1]);
}
else {
for (int i = 0; i < s.size(); ++i) {
if (i % (k * 2) == 0 && i + k - 1 < s.size()) {
for (int j = 0; j < k / 2; ++j)
swap(s[i + j], s[i + k - j - 1]);
}
else if (i % (k * 2) == 0) {
int len = s.size() - i;
for (int j = 0; j < len / 2; ++j)
swap(s[i + j], s[i + len - j - 1]);
}
}
}
return s;
}
};
int main() {
Solution s;
cout << s.reverseStr("hyzqyljrnigxvdtneasepfahmtyhlohwxmkqcdfehybknvdmfrfvtbsovjbdhevlfxpdaovjgunjqlimjkfnqcqnajmebeddqsgl", 39) << endl;
system("pause");
}
本文介绍了解决LeetCode 541题“反转字符串 II”的方法,通过条件判断来实现字符串的按指定长度反转。代码采用C++实现,并考虑了不同输入情况下的反转逻辑。
423

被折叠的 条评论
为什么被折叠?



