【簡單】
class solution:
def reverseonlyletters(self, s):
""":param s: str
:return: str
"""s=list(s)
s_alpha=[i for i in s if i.isalpha()]
reversed_alpha=list(reversed(s_alpha))
index=0
for i in range(len(s)):
if s[i].isalpha():
s[i]=reversed_alpha[index]
index+=1
return ''.join(str(s[i]) for i in range(len(s)))
1.記錄s**現的字母====>反轉
2.遍歷s,若是字母就將反轉後的值賦值到s中相應的地方
3.還有其他的方法,都很不錯,比如雙指標和利用python中字典的雜湊表特性來做。
s="test1ng-leet=code-q!" #input
#output="qedo1ct-eelg=ntse-t!"
class solution:
def reverseonlyletters(self, s):
""":param s: str
:return: str
"""s = list(s)
left, right = 0, len(s)-1
while left < right:
if not s[left].isalpha():
left += 1
elif not s[right].isalpha():
right -= 1
else:
s[left], s[right] = s[right], s[left]
left += 1
right -= 1
return ''.join(s)
class solution:
def reverseonlyletters(self, s):
""":param s: str
:return: str
"""loc =
alpha =
reversed_alpha = #zip([iterable, ...])
loc.update(reversed_alpha)
return ''.join([loc[i] for i in range(len(s))])
僅僅反轉字母
給定乙個字串 s,返回 反轉後的 字串,其中不是字母的字元都保留在原地,而所有字母的位置發生反轉。示例 1 輸入 ab cd 輸出 dc ba 示例 2 輸入 a bc def ghij 輸出 j ih gfe dcba 示例 3 輸入 test1ng leet code q 輸出 qedo1ct ...
僅僅反轉字母
題目 給定乙個字串 s,返回 反轉後的 字串,其中不是字母的字元都保留在原地,而所有字母的位置發生反轉。方法一 雙指標遍歷字串陣列,不是字母,指標移動,當兩個指標指向都為字母時,就交換兩個字母。class solution elseif character.isletter a right else...
僅僅反轉字母
題目 給定乙個字串 s,返回 反轉後的 字串,其中不是字母的字元都保留在原地,而所有字母的位置發生反轉。示例 輸入 a bc def ghij 輸出 j ih gfe dcba class solution string reverseonlyletters string s left while ...