leetcode395
分治法。
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的更多相关文章
- [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 ...
- leetcode395 Longest Substring with At Least K Repeating Characters
思路: 尺取法. 循环i:1~26,分别计算恰好包含i种字母并且每种字母出现的次数大于等于k个的最长子串长度. 没法直接使用尺取法,因为不满足区间单调性,但是使用如上的方法却是可以的,因为子串中包含的 ...
随机推荐
- Spring的JdbcTemplate实现分页
PageList.java实体类 /** * 封装分页对象 **/ public class PageList { private int page; //当前页 private int totalR ...
- 初识webservice 服务
1.获取电话号码归属地查询 首先访问: http://www.webxml.com.cn/zh_cn/web_services.aspx ①新建一个MyEclipse项目(WebService) ht ...
- c#在winform中用DataGridView实现分页效果
public partial class Form11 : Form { public Form11() { InitializeComponent(); } private int Inum = 1 ...
- ablout unbuntu default mysql
http://www.ghostchina.com/how-to-reset-mysqls-root-password/ http://blog.csdn.net/u010603691/article ...
- javascript垃圾收集
javascript具有自动垃圾收集机制,也就是说,执行环境会负责管理代码执行过程中使用的内存.而在C和C++之类的语言中,开发人员的一项基本任务就是手工跟踪内存的使用情况 ,这是造成许多问题的一个根 ...
- [转载]ORACLE EXP/IMP
转载自:https://www.cnblogs.com/mengfanrong/p/3792955.html 本文对Oracle数据的导入导出 imp ,exp 两个命令进行了介绍, 并对其对应的參数 ...
- pos 和 AnsiPos
PropsClearList[I]的值是 用户=个人 R := AnsiPos(Equal_sign, PropsClearList[I]); ShowMessage( IntToStr( R));/ ...
- 毒害一代Java程序猿的HttpClient
前言 2016年以来,越来越多Android开发者使用Retrofit作为HTTP请求框架.原因其一,Google发布Android 6.0 SDK (API 23) 抛弃了HttpClient:其二 ...
- js在一定时间内跳转页面及各种页面刷新
1.js 代码: <SCRIPT LANGUAGE="JavaScript"> var time = 5; //时间,秒 var timelong = 0; funct ...
- Linux:安装Ubuntu时出现“客户机操作新系统已禁用CPU,请关闭或重置虚拟机”
安装Ubuntu时出现“客户机操作新系统已禁用CPU,请关闭或重置虚拟机“ 解决 在vmware的虚拟机的配置文件中找到xxxx.vmx的文件 用记事本打开 加入 cpuid..eax = " ...