僅僅反轉字母

2021-09-24 10:19:36 字數 1411 閱讀 1409

【簡單】

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 ...