(start,i)表示当前发现的最大长度不重复字串,当遍历到i+1时候,看a[i+1]是不是在(start,i)里面(用map),有两种情况

其中map<char,idex> 记录每个字符出现的位置。

1)如果在map里且当前遍历索引>start,那么计算目前最大长度MAX=max(i-start,MAX),并且更新start=m[c]+1;

2) 否则,那么更新最大长度+1。

int longestSubstring(string A, int n) {map<char, int> m; //表示字符串中每个字符是否出现,初始化为0,表示未出现  int start = 0,MAX = 0;  //遍历该字符串,每遍历一个字母时,利用map去找该字母最近一次出现是什么时候  //中间这一段便是无重复字符的字符串。  for (int i = 0; i <= n; i++){  char c = A[i];    if (m.find(c)!=m.end() && m[c] > start){    start = m[c] + 1;  MAX=max(i-start,MAX);}else{MAX = max(MAX, i - start + 1); }m[c] = i;   //map添加数据  mapStudent[char] = int }    return MAX;
}

字符串的最长不重复字串相关推荐

  1. 查找一段文字中最长的重复字串 – 编程珠玑(排过序的后缀数组的应用)

    转自:https://www.cse.msu.edu/~liyang5/?p=53 <编程珠玑>在第15章"珍珠字符串"一节,给出了一个非常漂亮的实现 – 基于目标字符 ...

  2. 字符串相关处理kmp,前缀数,后缀树,后缀数组,最长回文串,最长重复字串,最长非重复字串

    1. 最长回文串 一般用后缀数组或者后缀树可以解决, 用此方法:http://blog.csdn.net/v_july_v/article/details/6897097 预处理后缀树,使得查询LCA ...

  3. python应用:最长无重复字串提取

    一.算法说明 如何获取一个字符串中最大的不重复子串? 假定给定字符串:算法如下: 1)取出第一个字符,放入集合,长度记为 2)取出与比较,如果不在set内,将 加入:回到1) 如果在set内,记录le ...

  4. leetcode-3:最长无重复字串

    思路:滑动窗口+大小为257的整型数组记录子串元素的位置/哈希表 位置数组:0表示不在子串中,非0表示位置 i 起始位置 j 结束位置 int lengthOfLongestSubstring(str ...

  5. 【算法题】求一个字符串的最长不重复子串

    [题目描述] 求一个字符串的最长不重复子串.比如:给定"abcabcbb"的答案是"abc",长度是3:给定"bbbbb"的答案是" ...

  6. 最长不重复字符串python_Python简单实现查找一个字符串中最长不重复子串的方法...

    本文实例讲述了Python简单实现查找一个字符串中最长不重复子串的方法.,具体如下: 刚结束的一个笔试题,很简单,不多说简单贴一下具体的实现: #!usr/bin/env python #encodi ...

  7. 牛客题霸 [找到字符串的最长无重复字符子串] C++题解/答案

    牛客题霸 [找到字符串的最长无重复字符子串] C++题解/答案 题目描述 给定一个数组arr,返回arr的最长无的重复子串的长度(无重复指的是所有数字都不相同). 题解: i和j两个指针分别指不重复子 ...

  8. 《程序员代码面试指南》第五章 字符串问题 找到字符串的最长无重复字符子串...

    题目 找到字符串的最长无重复字符子串 java代码 努力中.... 转载于:https://www.cnblogs.com/lizhouwei/p/8955166.html

  9. python查找最长的字符串_Python简单实现查找一个字符串中最长不重复子串的方法...

    本文实例讲述了Python简单实现查找一个字符串中最长不重复子串的方法.分享给大家供大家参考,具体如下: 刚结束的一个笔试题,很简单,不多说简单贴一下具体的实现: #!usr/bin/env pyth ...

最新文章

  1. C++:随笔2--I/O实践
  2. 想用Python学机器学习?Google大神替你写好了所有的编程示范代码
  3. python官网下载步骤linux-linux如何安装python
  4. linux gdb#039;查找寄存器地址,【Linux跟踪和调试】gdb
  5. QT的QDesignerContainerExtension类的使用
  6. u盘安装linux 提示no such device_树莓派学习笔记2-U盘挂载和系统备份
  7. Apache详细介绍 - [ Apache v2.4.10 for Windows ]
  8. mysql 学习笔记07日期相关函数01
  9. android退出app代码,Android应用退出代码各种方式
  10. IDEA 格式化XML命令
  11. Flask开发 导入flask_uploads包时提示“IMPORTERROR: CANNOT IMPORT NAME ‘SECURE_FILENAME‘ FROM ‘WERKZEUG‘“
  12. word2007制作目录
  13. java-net-php-python-69jspm高校在线课程平台计算机毕业设计程序
  14. 打开PowerPoint提示:PowerPoint上次起送时失败。以安全模式启动PowperPoint将帮助您纠正或发现启动中的问题
  15. Android全局捕获异常信息,并上传到服务器。
  16. alios things开发板_AliOS Things图形界面开发指南
  17. el-upload点击打开文件上传弹窗之前进行其他操作,等待操作完成后再打开文件上传弹窗
  18. 小程序手势返回以及手机自带返回功能问题解决思路
  19. 转:一套大而全的系统架构体系与具体落地方案
  20. 【工控基础】1. SCADA系统介绍

热门文章

  1. 接私活被公司开除。。
  2. 骚操作!他居然同时给谷歌和 Facebook 上班干活
  3. 为什么阿里巴巴Java开发手册中强制要求接口返回值不允许使用枚举?
  4. 张一鸣:做CEO要避免理性的自负
  5. 《Spark与Hadoop大数据分析》一一1.1 大数据分析以及 Hadoop 和 Spark 在其中承担的角色...
  6. linux 内核 第二周 操作系统是如何工作的
  7. Win2008 R2 VDI动手实验系列之一:Active Directory搭建
  8. iphone-common-codes-ccteam源代码 CCNSArray.m
  9. 设计模式之Strategy(策略模式系列1)
  10. seo图片的alt属性介绍及写法?