917. Reverse Only Letters(反转列表)

题目

在这里插入图片描述

我的代码

class Solution(object):
    def reverseOnlyLetters(self, S):
        """
        :type S: str
        :rtype: str
        """
        i=0
        j=len(S)-1
        S=list(S)
        while i<j:
            if not S[i].isalpha():
                i+=1
                continue;
            if not S[j].isalpha():
                j-=1
                continue
            t=S[i]
            S[i]=S[j]
            S[j]=t
            i+=1
            j-=1
        return ''.join(S)

优秀代码

其中间,用了while效率更高一些。

class Solution(object):
    def reverseOnlyLetters(self, S):
        """
        :type S: str
        :rtype: str
        """
        s = []
        i = 0
        j = len(S) -1
        for i, x in enumerate(S):
            if x.isalpha():
                while not S[j].isalpha():
                #i +=1
                    j-=1
                s.append(S[j])
                j -=1
                
            else:
                s.append(x)
        return "".join(s)

猜你喜欢

转载自blog.csdn.net/xiabenshu/article/details/88993129