Re: [闲聊] 每日leetcode

楼主: DJYOMIYAHINA (通通打死)   2024-11-21 00:02:22
跟大部分人差不多 吧
不过往回找的时候好像可以不用abc都检查
可以只检查被扣掉的那个字母的count就好
def takeCharacters(self, s: str, k: int) -> int:
cnt = [0 for _ in range(3)]
for i in range(len(s)):
cnt[ord(s[i])-ord('a')] += 1
if not all([cnt[i]>=k for i in range(3)]):
return -1
n = len(s)
r = n-1
ans = n
for i in range(n):
l = n-1-i
cnt[ord(s[l])-ord('a')] -= 1
while r>=0 and not all([cnt[i]>=k for i in range(3)]):
cnt[ord(s[r])-ord('a')] += 1
r -= 1
ans = min(ans, n-r-1+l)
return ans
作者: oin1104 (是oin的说)   2024-11-21 00:06:00
确实 不过只有三个 就懒得弄了我记得有周赛是26个字母 强制你一定要只检查当个 不能26个都检查 不然超时

Links booklink

Contact Us: admin [ a t ] ucptt.com