LeetCodeブラシ問題の917.アルファベットのみを反転
5455 ワード
LeetCodeブラシ問題の917.アルファベットのみを反転
私はどこへ行くか分かりませんが、私はもう道にいます.
时間は慌ただしくて、会ったことがありませんが、ここで出会って、本当に大きな縁で、あなたの訪問に感謝します!タイトル:1つの文字列 例: ヒント: 33 <= は含まれていませんコード: アルゴリズムの説明:アルファベットの文字を
私はどこへ行くか分かりませんが、私はもう道にいます.
时間は慌ただしくて、会ったことがありませんが、ここで出会って、本当に大きな縁で、あなたの訪問に感謝します!
S
が与えられ、「反転後」の文字列が返され、アルファベットではない文字が元の場所に残り、すべてのアルファベットの位置が反転します. 1 :
:"ab-cd"
:"dc-ba"
2:
:"a-bC-dEf-ghIj"
:"j-Ih-gfE-dCba"
3:
:"Test1ng-Leet=code-Q!"
:"Qedo1ct-eeLg=ntse-T!"
S.length
<= 100 S[i].ASCIIcode
<= 122 S
にor"class Solution:
def reverseOnlyLetters(self, S: str) -> str:
a = []
b = ['-1'] * len(S)
for i in range(len(S)):
if (S[i] >= 'a' and S[i] <= 'z') or (S[i] >= 'A' and S[i] <= 'Z'):
a.append(S[i])
else:
b[i] = S[i]
a.reverse()
for i in range(len(S)):
if b[i] != '-1':
a.insert(i,b[i])
return ("".join(a))
# :64 ms, Python3 28.12%
# :12.9 MB, Python3 96.75%
a=[]
リストに保存し、a
を反転します.アルファベットではない文字をb=[‘-1’]*len(S)
に保存し、-1
でb
のリストを埋めます.アルファベットではない文字の位置を記録するためです.その後、b
の非-1
文字を位置別にa
に挿入し、a
を出力すればよい.