分治法。

public class Solution
{
private int LongestSubstringSub(string s, int k, int start, int end)
{
if (start > end)
{
return ;
}
int[] count = new int[];
for (int i = start; i <= end; i++)
{
count[s[i] - 'a']++;
} for (int i = ; i < ; i++)
{
if (count[i] > && count[i] < k)
{
var pos = s.IndexOf((char)(i + 'a'), start);
return Math.Max(LongestSubstringSub(s, k, start, pos - ), LongestSubstringSub(s, k, pos + , end));
}
} return end - start + ;
} public int LongestSubstring(string s, int k)
{
return LongestSubstringSub(s, k, , s.Length - );
}
}

leetcode395的更多相关文章

  1. [Swift]LeetCode395. 至少有K个重复字符的最长子串 | Longest Substring with At Least K Repeating Characters

    Find the length of the longest substring T of a given string (consists of lowercase letters only) su ...

  2. leetcode395 Longest Substring with At Least K Repeating Characters

    思路: 尺取法. 循环i:1~26,分别计算恰好包含i种字母并且每种字母出现的次数大于等于k个的最长子串长度. 没法直接使用尺取法,因为不满足区间单调性,但是使用如上的方法却是可以的,因为子串中包含的 ...

随机推荐

  1. Spring的JdbcTemplate实现分页

    PageList.java实体类 /** * 封装分页对象 **/ public class PageList { private int page; //当前页 private int totalR ...

  2. 初识webservice 服务

    1.获取电话号码归属地查询 首先访问: http://www.webxml.com.cn/zh_cn/web_services.aspx ①新建一个MyEclipse项目(WebService) ht ...

  3. c#在winform中用DataGridView实现分页效果

    public partial class Form11 : Form { public Form11() { InitializeComponent(); } private int Inum = 1 ...

  4. ablout unbuntu default mysql

    http://www.ghostchina.com/how-to-reset-mysqls-root-password/ http://blog.csdn.net/u010603691/article ...

  5. javascript垃圾收集

    javascript具有自动垃圾收集机制,也就是说,执行环境会负责管理代码执行过程中使用的内存.而在C和C++之类的语言中,开发人员的一项基本任务就是手工跟踪内存的使用情况 ,这是造成许多问题的一个根 ...

  6. [转载]ORACLE EXP/IMP

    转载自:https://www.cnblogs.com/mengfanrong/p/3792955.html 本文对Oracle数据的导入导出 imp ,exp 两个命令进行了介绍, 并对其对应的參数 ...

  7. pos 和 AnsiPos

    PropsClearList[I]的值是 用户=个人 R := AnsiPos(Equal_sign, PropsClearList[I]); ShowMessage( IntToStr( R));/ ...

  8. 毒害一代Java程序猿的HttpClient

    前言 2016年以来,越来越多Android开发者使用Retrofit作为HTTP请求框架.原因其一,Google发布Android 6.0 SDK (API 23) 抛弃了HttpClient:其二 ...

  9. js在一定时间内跳转页面及各种页面刷新

    1.js 代码: <SCRIPT LANGUAGE="JavaScript"> var time = 5; //时间,秒 var timelong = 0; funct ...

  10. Linux:安装Ubuntu时出现“客户机操作新系统已禁用CPU,请关闭或重置虚拟机”

    安装Ubuntu时出现“客户机操作新系统已禁用CPU,请关闭或重置虚拟机“ 解决 在vmware的虚拟机的配置文件中找到xxxx.vmx的文件 用记事本打开 加入 cpuid..eax = " ...