- [Leetcode 2904. Shortest and Lexicographically Smallest Beautiful String](#Leetcode 2904. Shortest and Lexicographically Smallest Beautiful String)
- [1. 解题思路](#1. 解题思路)
- [2. 代码实现](#2. 代码实现)
1. 解题思路
这一题其实没啥好多说啥的,就是一个滑动窗口的思路,用滑动窗口考察每一个beautiful string的长度以及其是否为字母序最小即可。
2. 代码实现
给出python代码实现如下:
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。