LeetCode 917 Reverse Only Letters 解题报告

时间:2023-03-08 19:50:58
LeetCode 917 Reverse Only Letters 解题报告

题目要求

Given a string S, return the "reversed" string where all characters that are not a letter stay in the same place, and all letters reverse their positions.

题目分析及思路

给定一个字符串,返回“reversed”后的字符串,要求非字母的字符保留原来的位置,字母字符逆序排列。可以先获得原字符串中的全部字母字符列表,然后遍历原字符串,并用一个新的列表存储结果。若某位置是字母字符,就取先前获得的列表中的末尾元素;若是非字母字符,则保留该位置的字符。最后将列表转换成字符串。

python代码

class Solution:

def reverseOnlyLetters(self, S: str) -> str:

letters = [c for c in S if c.isalpha()]

res = []

for c in S:

if c.isalpha():

res.append(letters.pop())

else:

res.append(c)

return "".join(res)