首页 > 其他分享 >unordered_map在计算最大长度的无重复字符子串的作用总结

unordered_map在计算最大长度的无重复字符子串的作用总结

时间:2024-04-10 21:23:07浏览次数:17  
标签:子串 map hash 字符 len unordered left

例如:abcadfee

计算结果为3,即abc或adf

这里定义一个unordered_map<char,int> 的哈希表,键为字符,值为该字符的下标

int left=0,len=0;

for(int i=0;i<s.length();i++){

char c=str[i];

if(hash.count(c)){

len=max(len,i-left);//计算最大长度

left=max(left,hash[c]+1);//就算左指针的下一个位置

}

//出现字符就记录

hash[c]=i;

}

//最后一个字符也要记录

len=max(len,i-left);

 

这里再总结map中的count,find的区别,count是返回1,0找到还是没有找到,find是返回迭代器得用auto接收指向second是值,今天先这样了。

 

标签:子串,map,hash,字符,len,unordered,left
From: https://www.cnblogs.com/zhangmingmkzj/p/18127475

相关文章

  • sqoop:错误: 找不到或无法加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMaster(已
    1报错信息错误:找不到或无法加载主类org.apache.hadoop.mapreduce.v2.app.MRAppMaster说明:操作将数据库中的数据导入到HDFS中执行sqoopimport --connectjdbc:mysql://aaa01:3306/mysql--usernameroot--passwordroot--tabletest时报了以下错误2报错截图:......
  • 深入理解 Semaphore 【源码分析】
    SemaphoreSemaphore是信号量的意思,一般用来控制同时访问某个资源的线程数量,协调各个线程合理的访问公共资源,Semaphore的底层依赖的是AQS。Semaphore使用计数器来控制对共享资源的访问,如果计数器大于0,则表示允许访问共享资源,如果为0,则表示共享资源已经达到访问的上......
  • 利用LinkedHashMap实现简单的LRU
    利用LinkedHashMap进行重写,实现LRU作为缓存字典1、代码实现importjava.util.LinkedHashMap;importjava.util.Map;/***利用LinkedHashMap进行重写,实现LRU作为缓存字典**@param<K>key*@param<V>value*@date2024-04-1009:42**/publicclassLRUCach......
  • [网鼎杯 2020 朱雀组]Nmap
    [网鼎杯2020朱雀组]Nmap类似Nmap的功能,一个输入命令行,提示输入ip地址,尝试输入正常内容:127.0.0.1nmap命令将扫描结果保存在文件里面:例如:将nmap127.0.0.1的结果保存在test.txt里面nmap127.0.0.1-oNtest.txtnmap其他写文件命令:-oN(标准输出)-oX(XML输出)-oS(ScR......
  • 【Kotlin】List、Set、Map简介
    1List​Java的List、Set、Map介绍见→Java容器及其常用方法汇总。1.1创建List1.1.1emptyListvarlist=emptyList<String>()//创建空List1.1.2List构造函数varlist1=List(3){"abc"}//[abc,abc,abc]varlist2=ArrayList<Int>()varlist3=......
  • java 对List<Map<String, Object>>遍历
    在Java中,遍历List<Map<String,Object>>可以通过多种方式来实现。以下是一些常见的方法:使用for-each循环javaList<Map<String,Object>>list=//初始化你的Listfor(Map<String,Object>map:list){for(Map.Entry<String,Object>entry:map.entrySet()){......
  • java 对Map<String, Object>遍历
    在Java中,你可以使用多种方法来遍历Map<String,Object>。以下是一些常见的方法:使用Map.Entry和IteratorjavaMap<String,Object>map=newHashMap<>();//添加一些键值对到map中Iterator<Map.Entry<String,Object>>iterator=map.entrySet().iterator();while(iterator.ha......
  • Mapster 高性能对象映射框架
    Mapster简介Mapster是一个使用简单,功能强大,性能极佳的对象映射框架为什么选择Mapster?性能&内存占用与AutoMapper相比,Mapster在速度和内存占用方面表现更加优秀,可以在只使用1/3内存的情况下获得4倍的性能提升。并且通过使用以下组件可以获得更高的性能:MethodMea......
  • 前端【打包相关的配置项】【项目打包后本地查看配置】【去掉打包后js的map文件】【生
    1、打包后会生成dist目录,里面的index.html双击打开是空白的,需要部署到服务器上才能看到项目内容,此时可以通过vue.config.js中配置一个参数,这样本地打包完就可以看到效果vue.config.js1const{defineConfig}=require('@vue/cli-service')2module.exports=defineCon......
  • Elasticsearch之-mapping 映射管理
    目录Elasticsearch之-mapping映射管理一、映射介绍1.1字段数据类型1.2映射参数二、创建索引时指定映射2.16.x的版本写法2.27.x版本以后2.3插入数据测试三、查看索引Elasticsearch之-mapping映射管理在Elasticsearch6.0.0或更高版本中创建的索引只包含一个mappingtype......