题目链接:917. 仅仅反转字母
模拟即可。
class Solution:
def reverseOnlyLetters(self, s: str) -> str:
l, r, s = -1, len(s), list(s)
while l < r:
while l + 1 < len(s) and not s[l + 1].isalpha():
l += 1
while r - 1 >= 0 and not s[r - 1].isalpha():
r -= 1
if 0 <= l + 1 < r - 1 < len(s):
s[l + 1], s[r - 1] = s[r - 1], s[l + 1]
l += 1
r -= 1
return ''.join(s)