欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 美景 > 395. 至少有K个重复字符的最长子串

395. 至少有K个重复字符的最长子串

2025/2/6 16:30:02 来源:https://blog.csdn.net/qq_43606119/article/details/145399890  浏览:    关键词:395. 至少有K个重复字符的最长子串

参考题解:https://leetcode.cn/problems/longest-substring-with-at-least-k-repeating-characters/solutions/623991/jie-ben-ti-bang-zhu-da-jia-li-jie-di-gui-obla

  • 递归含义:返回字符串s中至少有k个重复字符的最长子串
  • 递归终止条件:当s的长度小于k,终止
  • 递归条件:当s中的某个字符c的数量小于k,则包含c的子串必然不符合条件,因此根据字符c对字符串s进行切分,得到若干个字符串t,对t递归进行上述检查。
  • 递归条件外:指没进入递归条件,即s中所有字符的数量都大于等于k,因此符合条件的最长子串就是s本身。
class Solution {public int longestSubstring(String s, int k) {int n = s.length();if (n < k) return 0;Map<Character, Integer> counter = new HashMap<>();for (int i = 0; i < n; ++i) {counter.put(s.charAt(i), counter.getOrDefault(s.charAt(i), 0) + 1);}for (char c : counter.keySet()) {if (counter.get(c) < k) {int ans = 0;for (String t : s.split(String.valueOf(c))) {ans = Math.max(ans, longestSubstring(t, k));}return ans;}}return n;}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com