给你一个字符串 s
,根据下述规则反转字符串:
- 所有非英文字母保留在原有位置。
- 所有英文字母(小写或大写)位置反转。
返回反转后的 s
。
示例 1:
输入:s = "ab-cd" 输出:"dc-ba"
示例 2:
输入:s = "a-bC-dEf-ghIj" 输出:"j-Ih-gfE-dCba"
示例 3:
输入:s = "Test1ng-Leet=code-Q!" 输出:"Qedo1ct-eeLg=ntse-T!"
提示
1 <= s.length <= 100
s
仅由 ASCII 值在范围[33, 122]
的字符组成s
不含'\"'
或'\\'
class Solution {
public:
//判断传来的是字母
bool isLetter(char ch)
{
if(ch>='a'&&ch<='z')
return true;
if(ch>='A'&&ch<='Z')
return true;
return false;
}
string reverseOnlyLetters(string S) {
if(S.empty())
{
return S;
}
size_t begin =0,end=S.size()-1;
while(begin<end)
{
while(begin<end && !isLetter(S[begin]))
{
begin++;
}
while(begin<end && !isLetter(S[end]))
{
end--;
}
swap(S[begin],S[end]);
++begin;--end;
}
return S;
}
};
标签:ch,示例,英文字母,反转,字母,OJ917,&&,数据结构,输入
From: https://blog.csdn.net/2303_81073778/article/details/143260197