2021-09-14 Daily-Challenge
Today I have done leetcode's September LeetCoding Challenge with cpp
.
September LeetCoding Challenge 14
Description
Reverse Only Letters
Given a string s
, reverse the string according to the following rules:
- All the characters that are not English letters remain in the same position.
- All the English letters (lowercase or uppercase) should be reversed.
Return s
after reversing it.
Example 1:
Input: s = "ab-cd"
Output: "dc-ba"
Example 2:
Input: s = "a-bC-dEf-ghIj"
Output: "j-Ih-gfE-dCba"
Example 3:
Input: s = "Test1ng-Leet=code-Q!"
Output: "Qedo1ct-eeLg=ntse-T!"
Constraints:
1 <= s.length <= 100
s
consists of characters with ASCII values in the range[33, 122]
.s
does not contain'\"'
or'\\'
.
Solution
class Solution {
public:
string reverseOnlyLetters(string s) {
int begin = 0;
int end = s.length() - 1;
while(begin < end) {
while(begin < end && !isalpha(s[begin])) begin += 1;
while(begin < end && !isalpha(s[end])) end -= 1;
if(begin < end) swap(s[begin], s[end]);
begin += 1;
end -= 1;
}
return s;
}
};
// Accepted
// 115/115 cases passed (0 ms)
// Your runtime beats 100 % of cpp submissions
// Your memory usage beats 65.04 % of cpp submissions (6 MB)