您现在的位置是:主页 > news > 贝壳企业网站管理系统/搜索引擎排名查询工具

贝壳企业网站管理系统/搜索引擎排名查询工具

admin2025/5/5 8:14:09news

简介贝壳企业网站管理系统,搜索引擎排名查询工具,网站建设 响应式 北京,网架公司是做什么的题目:原题链接(中等) 标签:递归、记忆化递归、分治算法、滑动窗口 解法时间复杂度空间复杂度执行用时Ans 1 (Python)O(2N)O(2^N)O(2N)O(2N)O(2^N)O(2N)120ms (7.32%)Ans 2 (Python)Ans 3 (Python) 解法一: class So…

贝壳企业网站管理系统,搜索引擎排名查询工具,网站建设 响应式 北京,网架公司是做什么的题目:原题链接(中等) 标签:递归、记忆化递归、分治算法、滑动窗口 解法时间复杂度空间复杂度执行用时Ans 1 (Python)O(2N)O(2^N)O(2N)O(2N)O(2^N)O(2N)120ms (7.32%)Ans 2 (Python)Ans 3 (Python) 解法一: class So…

题目:原题链接(中等)

标签:递归、记忆化递归、分治算法、滑动窗口

解法时间复杂度空间复杂度执行用时
Ans 1 (Python)O(2N)O(2^N)O(2N)O(2N)O(2^N)O(2N)120ms (7.32%)
Ans 2 (Python)
Ans 3 (Python)

解法一:

class Solution:@functools.lru_cache(None)def longestSubstring(self, s: str, k: int, count=None, left=0, right=None) -> int:size = len(s)# 处理默认值变量if right is None:right = size - 1if count is None:count = [0] * 26for i in range(left, right + 1):count[ord(s[i]) - 97] += 1else:count = list(count)# 统计出现次数不足k的字符less_lst = set()for i, n in enumerate(count):if 0 < n < k:less_lst.add(i)# 移除开头多余字符while left <= right and (idx := ord(s[left]) - 97) in less_lst:count[idx] -= 1if count[idx] == 0:less_lst.remove(idx)left += 1# 移除结尾多余字符while left <= right and (idx := ord(s[right]) - 97) in less_lst:count[idx] -= 1if count[idx] == 0:less_lst.remove(idx)right -= 1# 处理字符串为空串的情况if left > right:return 0# 处理已经是目标字符串的情况if not less_lst:return right - left + 1# 递归处理两种可能count[ord(s[left]) - 97] -= 1v1 = self.longestSubstring(s, k, tuple(count), left + 1, right)count[ord(s[left]) - 97] += 1count[ord(s[right]) - 97] -= 1v2 = self.longestSubstring(s, k, tuple(count), left, right - 1)return max(v1, v2)