Leetcode每日一题之仅仅反转字母(C++)
#include <iostream>
#include <string>
using namespace std;
class Solution {
public:
string reverseOnlyLetters(string s) {
int i = 0, j = s.size() - 1;
while (i < j) {
// 找到第一个字母和最后一个字母交换
while (i < j && !isalpha(s[i])) i++;
while (i < j && !isalpha(s[j])) j--;
if (i < j) {
swap(s[i++], s[j--]);
}
}
return s;
}
};
int main() {
Solution solution;
string input = "ab-cd-ef";
cout << "Original string: " << input << endl;
cout << "Reversed letters only: " << solution.reverseOnlyLetters(input) << endl;
return 0;
}
这段代码定义了一个Solution类,其中包含了reverseOnlyLetters成员函数,该函数实现了反转字符串中的所有字母,而保留非字母字符原位置不变的功能。然后在main函数中创建了Solution类的实例并调用了reverseOnlyLetters方法,最后输出了处理后的字符串。
评论已关闭