给你一个字符串 Str
,根据下述规则反转字符串。 · 所有非英文字母保留在原有位置。 · 所有英文字母(含有大写字母)位置反转。 输出反转之后的 Str
。
输入格式
输入一个字符串。
输出格式
输出一个字符串。
输入输出样例1
输入
ab-cd
输出
dc-ba
提示
1≤Str.length≤100
Str
仅仅包含ASCII码值在[33,122]
的字符 Str
不包含\
或者\\
#include <iostream>
#include <string>
using namespace std;
bool isAlpha(char c) {
return (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z');
}//定义一个函数isAlpha(char c),用于判断字符c是否为字母。
string reverseStr(const string& str) {
string result = str;
int left = 0, right = str.size() - 1;
while (left < right) {
if (!isAlpha(result[left])) {
left++;
} else if (!isAlpha(result[right])) {
right--;
} else {
swap(result[left], result[right]);
left++;
right--;
}
}
return result;
}//定义一个函数reverseStr(const string& str),用于反转字符串str中的字母。
int main() {
string input;
cin >> input;
string output = reverseStr(input);
cout << output << endl;
return 0;
}