Leetcode 2904. Shortest and Lexicographically Smallest Beautiful String

  • Leetcode 2904. Shortest and Lexicographically Smallest Beautiful String
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:2904. Shortest and Lexicographically Smallest Beautiful String

1. 解题思路

这一题其实没啥好多说啥的,就是一个滑动窗口的思路,用滑动窗口考察每一个beautiful string的长度以及其是否为字母序最小即可。

2. 代码实现

给出python代码实现如下:

class Solution:
    def shortestBeautifulSubstring(self, s: str, k: int) -> str:
        ans = ""
        n = len(s)
        i, j, cnt = 0, 0, 0
        while i < n:
            while j < n and cnt < k:
                if s[j] == "1":
                    cnt += 1
                j += 1
            if cnt < k:
                break
            if ans == "" or len(ans) > len(s[i:j]) or (len(ans) == len(s[i:j]) and ans > s[i:j]):
                ans = s[i:j]
            if s[i] == "1":
                cnt -= 1
            i += 1
        return ans  

提交代码评测得到:耗时46ms,占用内存16.2MB。

你可能感兴趣的:(leetcode笔记,leetcode周赛367,leetcode,2904,leetcode,medium,滑动窗口,python)