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:
def reverseOnlyLetters(self, s: str) -> str:
s = list(s)
n = len(s)
stack = []
for i in range(n):
if s[i].islower() or s[i].isupper():
stack.append(s[i])
s[i] = -1
for i in range(n):
if s[i] == -1:
s[i] = stack.pop()
return "".join(s)
Top comments (0)