LeetCode解题 Day05

899. Orderly Queue

https://leetcode.com/problems/orderly-queue/


9/6 更新挑战一行程序码


题目解释:

你有一组字串s 和一个数字k

每次只能从字串s 的前k 项里面选出任一个字母排到s 後面,并且要把s 尽量排成最小字典序的字串(the lexicographically smallest string)

Example:

https://i.imgur.com/2CeB4Os.png


解法:

这题的example1 会让题目看起来很难,所以我们先来看example2

首先,example2的output是个按照字母顺序排序的字串,接着我们把example2的k = 3 改成 k = 2 会发现得到一样的结果,改成k = 4、k = 5也一样

因为当k >= 2 时,我们就能把最小顺序的字母留在最前面,最後都一定能排出按照顺序完美排好的字串,只是差在快慢而已

至於k=1 的状况,我们只要列出所有的组合并找出最小的顺序就好

程序码:

class Solution:
    def orderlyQueue(self, s: str, k: int) -> str:
        if k > 1:
            return ''.join(sorted(s))
        
        temp = []
        for i in range(len(s)):
            temp.append( s[i:] + s[:i])
        
        return min(temp)

挑战一行程序码:

class Solution:
    def orderlyQueue(self, s: str, k: int) -> str:
        return ''.join(sorted(s)) if k > 1 else min([s[i:] + s[:i] for i in range(len(s))])

闲聊:

这题虽然是hard题目,但是相比前两天同样是hard的题目简单很多

可能是因为太简单的关系,这题倒赞比高了不少

总之顺利完成第5天了!!!


话说我可能近视加深需要换眼镜了,今天第一次看到这个gif竟然看成他在打手枪...
/images/emoticon/emoticon72.gif/images/emoticon/emoticon72.gif/images/emoticon/emoticon72.gif


<<:  Day 4:建立专案(二):Projucer 操练

>>:  IOS、Python自学心得30天 Day-2 Anaconda

[前端暴龙机,Vue2.x 进化 Vue3 ] Day26. Vue3 Composition API 使用(二)

前一篇说到 该怎麽写 data 的资料,找回双向绑定机制 !!! 这边先小小的补充一下 XD 在 O...

Day6_HTML语法3

接下来几天会陆陆续续带给大家各种元素使用,会有程序码以及网页呈现的样子,大家可以跟着做做看会更了解,...

Day.8 备份还原 - 备份资料 (MYSQL binlog )-上

复习: 在昨天讲解了如何使用mysqldump备份是数据和binlog相关过滤方法,今天来实际模拟...

[神经机器翻译理论与实作] 从头建立英中文翻译器 (V)

前言 今天继续训练阶段中的模型评估。 翻译器建立实作 模型评估 给定一个资料集(英、中文平行语句),...

[Day 24] 实作-日期格式转换 字串长度限制

好的~ 昨天做好搜寻栏了,今天来做下面的列表 那一样需要先建一个子组件,可以参考 Day21,这边就...