找到给定字符串(由小写字符组成)中的最长子串 T , 要求 T 中的每一字符出现次数都不少于 k 。输出 T 的长度。 来源:力扣(LeetCode) 8 ms 6.8 MB
1. 题目
示例 1: 输入: s = "aaabb", k = 3 输出: 3 最长子串为 "aaa" ,其中 'a' 重复了 3 次。 示例 2: 输入: s = "ababbc", k = 2 输出: 5 最长子串为 "ababb" ,其中 'a' 重复了 2 次, 'b' 重复了 3 次。
链接:https://leetcode-cn.com/problems/longest-substring-with-at-least-k-repeating-characters
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。2. 解题
class Solution { int maxlen = 0; public: int longestSubstring(string s, int k) { if(s.size() <= maxlen)//剪枝 return 0; int count[26] = {0}, i, left = 0; for(i = 0; i < s.size(); ++i) count[s[i]-'a']++; vector<int> split; for(i = 0; i < s.size(); ++i) { if(count[s[i]-'a'] > 0 && count[s[i]-'a'] < k) split.push_back(i);//不能出现的字符位置 } if(split.empty()) maxlen = max(maxlen, int(s.size()));//没有切分位置,满足题意 for(i = 0; i < split.size(); ++i) { longestSubstring(s.substr(left, split[i]-left), k); left = split[i]+1; if(i == split.size()-1 && left < s.size()) longestSubstring(s.substr(left, s.size()-left), k); } return maxlen; } };
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算