917.Reverse Only Letters
917.Reverse Only Letters
难度:Easy
给定一个字符串 S,返回 “反转后的” 字符串,其中不是字母的字符都保留在原地,而所有字母的位置发生反转。
1
示例 1:
2
3
输入:"ab-cd"
4
输出:"dc-ba"
5
示例 2:
6
7
输入:"a-bC-dEf-ghIj"
8
输出:"j-Ih-gfE-dCba"
9
示例 3:
10
11
输入:"Test1ng-Leet=code-Q!"
12
输出:"Qedo1ct-eeLg=ntse-T!"
13
14
15
提示:
16
17
S.length <= 100
18
33 <= S[i].ASCIIcode <= 122
19
S 中不包含 \ or "
Copied!
利用一个string存储所有字母,然后将逆序字母和非字母合并。
1
class Solution {
2
public:
3
string reverseOnlyLetters(string S) {
4
string alpha;
5
string res;
6
for(auto c:S)
7
if((c>='a' && c<='z' ) || (c>='A' && c<='Z') )
8
alpha+=c;
9
int start=0;
10
int len=alpha.length();
11
for(int i=0;i<S.length();i++)
12
{
13
if((S[i] >= 'a' && S[i]<='z') || (S[i]>='A' && S[i] <='Z'))
14
res+=alpha[len-1-start++];
15
else
16
res+=S[i];
17
}
18
return res;
19
}
20
};
Copied!
执行用时 :0 ms, 在所有 C++ 提交中击败了100%的用户 内存消耗 :8.2MB, 在所有 C++ 提交中击败了82.89%的用户
Copy link