LeetCode 791. 自定义字符串排序

作者: freesan44 | 来源:发表于2021-10-15 07:26 被阅读0次

    題目

    字符串S和 T 只包含小写字符。在S中,所有字符只会出现一次。

    S 已经根据某种规则进行了排序。我们要根据S中的字符顺序对T进行排序。更具体地说,如果S中x在y之前出现,那么返回的字符串中x也应出现在y之前。

    返回任意一种符合条件的字符串T。

    示例:
    输入:
    S = "cba"
    T = "abcd"
    输出: "cbad"
    解释: 
    S中出现了字符 "a", "b", "c", 所以 "a", "b", "c" 的顺序应该是 "c", "b", "a". 
    由于 "d" 没有在S中出现, 它可以放在T的任意位置. "dcba", "cdba", "cbda" 都是合法的输出。
    

    注意:

    S的最大长度为26,其中没有重复的字符。
    T的最大长度为200。
    S和T只包含小写字符。

    解題思路

    class Solution:
        def customSortString(self, order: str, s: str) -> str:
            ret = ""
            sList = list(s)
            for i in order:
                # print(i)
                while True:
                    # 利用remove的特性,把對應字母刪增,直到沒法進行為止
                    try:
                        sList.remove(i)
                        ret += i
                        # print(ret)
                    except:
                        break
            ret += "".join(sList)
            return ret
    
    
    
    if __name__ == '__main__':
        S = "cba"
        T = "abcddd"
        ret = Solution().customSortString(S, T)
        print(ret)
    

    相关文章

      网友评论

        本文标题:LeetCode 791. 自定义字符串排序

        本文链接:https://www.haomeiwen.com/subject/igiewltx.html