Longest Substring with K Distinct Characters (medium)

2023-05-16

刷题参考:https://blog.csdn.net/IBelieve2016/article/details/104544763 

#include<iostream>
#include<vector>
#include <unordered_map>
#include<string>
using namespace std;
/*
Given a string, find the length of the longest substring T 
that contains at most k distinct characters.
包含k个不同字符的最长子串 

Example 1:

Input: s = "eceba", k = 2
Output: 3
Explanation: T is "ece" which its length is 3.
Example 2:

Input: s = "aa", k = 1
Output: 2
Explanation: T is "aa" which its length is 2.

用一个start纪录字符串开始的位置 
charmap:纪录当前是否已经出现字符 ,(具有去重的作用) 
统计charmap个数,即从start至当前位置具有多少个不同字符。
max(res,i-start+1)
*/ 
int solution(string s,int k){
	int start=0,res=0;
	unordered_map<char,int> charmap;
	for(int i=0;i<s.size();i++){
		//纪录当前存在的字符以及频数
		charmap[s[i]]++;
		//当不同字符的数量大于k,则移动start 
		while(charmap.size()>k){
			//start位置的值在hash中值的频数-1 
			charmap[s[start]]--;
			//如果等于0则将该值移除 
			if(charmap[s[start]]==0){
				charmap.erase(s[start]);
			}
			start++;
		}
		res=max(res,i-start+1);
	}
	return res;
}

int main(){
	string s="eceba";
	int k=2;
	
	cout<<solution(s,k);
	return 0;
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Longest Substring with K Distinct Characters (medium) 的相关文章

随机推荐

  • Android硬件开发之——使用Android Beam传输文本

    前言 本文主要讲述使用Android Beam传输文本 xff0c 内容包含 xff1a Android Beam的基本理念Android Beam API实例 Android Beam Android Beam的基本理念 Android
  • 小小程序员的一周日报

    工作依旧在有条不紊的进行着 xff0c 一周的时间很快就会过去 xff0c 正如今天李哥所说的 xff0c 这一周还没有感觉怎么过呢 xff0c 就结束了 是啊 xff0c 这就是我们的工作 xff0c 程序员的工作 xff0c 软件设计师
  • 项目空间都有啥

    项目空间是什么 xff0c Workplace 答案是 xff1a No 项目空间是由项目负责人提出的实施某项目方案的一种流程 项目空间是XX海油ERP管理系统下的一个业务 xff0c 项目负责人通过创建项目名称 项目负责人 使用资源 所属
  • 你不要瞧不起Ctrl+C

    曾经 xff0c 在我未参加工作之前 xff0c 我认为靠 Ctrl 43 C 来完成工作的人 xff0c 肯定是懒惰的程序员 xff0c 但是现在我发现我错了 xff0c 而且是彻底的错了 能够通过 Ctrl 43 C 来完成工作的人 x
  • 文档交接说明书(模板)

    因为同事的离职 xff0c 我的入职 xff0c 要从同事手中交接过来一些项目 公司里只有一些开发文档相关的模板 xff0c 并没有文档交接相关的模板 xff0c 所以交接文档的模板也就由我们自己来定 我结合自己在工作中的经验 xff0c
  • Java如何打印输出九九乘法表

    Java如何打印输出九九乘法表 打印乘法表的方法 1 使用双重for循环打印九九乘法表 2 使用do while 实现打印九九乘法表 双重for循环的使用 打印结果如图示 xff1a Java程序源代码如下 xff1a span class
  • 服务器出现大量 TIME_WAIT,如何解决

    经常在服务器发现一些连接出现 TIME WAIT 状态 xff0c 那么为什么会有 TIME WAIT状态 xff0c 它是如何产生的 xff1f 大量的 TIME WAIT 有什么危害 xff1f 如何排查 xff1f 如何优化 xff1
  • 【Mariadb/Mysql】利用JSON函数巧妙实现行列置换提高系统效率

    在现实生活中 xff0c 往往我们需要创建一些One to Many或Many to Many的关系数据表 例如 xff1a 按照Configuration Solution的设计 xff0c 产品与产品参数表的关系 xff0c 往往一种产
  • msvcp120.dll丢失的最新解决方法

    下载msvcp120 dll打开浏览器后在顶部输入 dll修复程序 site 按下电脑键盘的回车键打开下载msvcp120 dll系统文件 msvcp120 dll文件下载完成点击解压安装包 然后右键打开修复安装包文件电脑提示找不到msvc
  • VirtualBox Windows下开机自启动

    背景 我们本地使用Virtualbox虚拟机的时候 xff0c 有些虚拟机需要开机自启动 方案 STEP 1 编写start bat脚本 34 D Program Files Oracle VirtualBox VBoxManage exe
  • js模拟C#Matches方法。

    水平有点低 xff0c 感觉应该这样写 var str 61 34 今年是2013年7月24日12 00 12 xff0c 我打算在2023年7月24日12 01 10登月 34 function Matches inputStr reg
  • MFC在其他线程中刷新主对话框中EDIT等控件数据

    为了程序稳定性 xff0c 在数据处理线程中 xff0c 所有与主UI线程有关的控件数据刷新应该到主UI线程中处理 也就是数据处理线程发消息 xff0c 让界面UI去更新控件 例如在项目中用到EDIT控件需要实时更新数据 xff0c 用Po
  • 多线程之生产者消费者模式

    文章目录 基本组成阻塞队列有界队列与无界队列ArrayBlockingQueueLinkedBlockingQueueSynchronousQueue 流量控制与信号量 Semaphore 双缓冲与Exchanger 基本组成 生产者 xf
  • IDEA用Maven创建SpringMVC项目和配置(XML配置方法)

    IDEA用Maven创建SpringMVC项目和配置 xff08 XML配置方法 xff09 一个人的百度甚是寂寞 xff0c 最近在写Java后台 xff0c 用Maven创建的SpringMVC项目可谓爬了很多的坑 xff0c 在百度滚
  • 解决mysql的赋权操作之GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘%‘ IDENTIFIED BY ‘123456‘ WITH GRANT OPTION问题

    一种情况 mysql的赋权操作 GRANT ALL PRIVILEGES ON TO root IDENTIFIED BY 123456 WITH GRANT OPTION mysql赋权操作 GRANT ALL PRIVILEGES ON
  • Ubuntu的recovery模式进入及退出

    如果root密码忘记 xff0c 可以进入recovery模式进行重置 或者当sudo命令出现错误时 xff0c 进入recovery模式可以修复 etc sudoers文件 recovery模式 1 启动Ubuntu系统 xff0c 过程
  • mxnet,nd中的asscalar()函数

    X asscalar 将向量X转换成标量 xff0c 且向量X只能为一维含单个元素的向量 X xff1a nd类型的数据 创建一个单个元素的向量 test 61 nd array 2 输出 xff1a 2 lt NDArray 1 64 c
  • YOLO v2和V3 关于设置生成anchorbox,Boundingbox边框回归的个人理解

    虽然阅读量不是很多 xff0c 但是没想到居然能得到这么多收藏和赞 xff0c 大家提出的问题 xff0c 我会不断更新 xff0c 尽量把过程解释得让大家都能了解清楚 PS xff1a 这篇文章是自己学习纪录下的笔记 xff0c 主要是通
  • 浪潮服务器NF5280m5 配置,raid和系统 安装纪录

    遇到的问题 xff1a 新到了一台服务器浪潮服务器NF5280m5 用u盘装ubantu系统 xff0c 一开始就找不到硬盘 xff0c 对于服务器0概念的新手来说太难弄了 xff0c 折腾了很久最后问客服解决了问题 服务器情况 xff1a
  • Longest Substring with K Distinct Characters (medium)

    刷题参考 xff1a https blog csdn net IBelieve2016 article details 104544763 include lt iostream gt include lt vector gt includ