LeetCode 791. 自定义字符串排序

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

网络异常,图片无法展示
|


題目


字符串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)
目录
相关文章
|
14天前
|
算法 索引 Python
二刷力扣--字符串
二刷力扣--字符串
|
15天前
|
算法 容器
【LeetCode刷题】滑动窗口解决问题:水果成篮、找到字符串中所有字母异位词
【LeetCode刷题】滑动窗口解决问题:水果成篮、找到字符串中所有字母异位词
|
15天前
|
算法
【经典LeetCode算法题目专栏分类】【第10期】排序问题、股票问题与TOP K问题:翻转对、买卖股票最佳时机、数组中第K个最大/最小元素
【经典LeetCode算法题目专栏分类】【第10期】排序问题、股票问题与TOP K问题:翻转对、买卖股票最佳时机、数组中第K个最大/最小元素
|
18天前
|
存储 算法 数据挖掘
深入解析力扣166题:分数到小数(模拟长除法与字符串操作详解及模拟面试问答)
深入解析力扣166题:分数到小数(模拟长除法与字符串操作详解及模拟面试问答)
|
18天前
|
存储 算法 数据可视化
【模拟面试问答】深入解析力扣164题:最大间距(桶排序与排序方法详解)
【模拟面试问答】深入解析力扣164题:最大间距(桶排序与排序方法详解)
|
18天前
|
存储 算法 数据可视化
深入解读力扣154题:寻找旋转排序数组中的最小值 II(多种方法及详细ASCII图解)
深入解读力扣154题:寻找旋转排序数组中的最小值 II(多种方法及详细ASCII图解)
|
18天前
|
存储 算法 数据可视化
|
9天前
leetcode题解:28.找出字符串中第一个匹配项的下标
leetcode题解:28.找出字符串中第一个匹配项的下标
7 0
|
9天前
leetcode题解:1768.交替合并字符串
leetcode题解:1768.交替合并字符串
18 0
|
15天前
【LeetCode刷题】二分查找:寻找旋转排序数组中的最小值、点名
【LeetCode刷题】二分查找:寻找旋转排序数组中的最小值、点名