博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode] Longest Substring with At Most K Distinct Characters 最多有K个不同字符的最长子串...
阅读量:6500 次
发布时间:2019-06-24

本文共 1118 字,大约阅读时间需要 3 分钟。

 

Given a string, find the length of the longest substring T that contains at most k distinct characters.

For example, Given s = “eceba” and k = 2,

T is "ece" which its length is 3.

 

这道题是之前那道的拓展,而且那道题中的解法一和解法二直接将2换成k就行了,具体讲解请参考之前那篇博客:

 

解法一:

class Solution {public:    int lengthOfLongestSubstringKDistinct(string s, int k) {        int res = 0, left = 0;        unordered_map
m; for (int i = 0; i < s.size(); ++i) { ++m[s[i]]; while (m.size() > k) { if (--m[s[left]] == 0) m.erase(s[left]); ++left; } res = max(res, i - left + 1); } return res; }};

 

具体讲解请参考之前那篇博客,参见代码如下:

 

解法二:

class Solution {public:    int lengthOfLongestSubstringKDistinct(string s, int k) {        int res = 0, left = 0;        unordered_map
m; for (int i = 0; i < s.size(); ++i) { m[s[i]] = i; while (m.size() > k) { if (m[s[left]] == left) m.erase(s[left]); ++left; } res = max(res, i - left + 1); } return res; }};

 

类似题目:

 

 

转载地址:http://urvyo.baihongyu.com/

你可能感兴趣的文章
解读浮动闭合最佳方案:clearfix
查看>>
Charles使用
查看>>
Python GUI编程(Tkinter) windows界面开发
查看>>
dynamic关键字的使用
查看>>
iOS 音乐播放器之锁屏效果+歌词解析
查看>>
android O 蓝牙设备默认名称更改
查看>>
阳台的青椒苗
查看>>
swapper进程【转】
查看>>
跨链技术与通证经济
查看>>
爬虫学习之-xpath
查看>>
js jQuery 右键菜单 清屏
查看>>
dotConnect for Oracle
查看>>
Eclipse下C/C++开发环境搭建
查看>>
Eclipse中设置在创建新类时自动生成注释
查看>>
我的友情链接
查看>>
CoreOS 手动更新
查看>>
golang 分页
查看>>
再论机械式针对接口编程
查看>>
25 个 Linux 性能监控工具
查看>>
C#程序员整理的Unity 3D笔记(十三):Unity 3D基于组件的思想
查看>>