思路:滑动窗口的思想

方法一:滑动窗口

    int lengthOfLongestSubstring(string s) {
/*
控制一个滑动窗口,窗口内的字符都是不重复的,通过set可以做到判断字符是否重复
*/
unordered_set<char> set;
size_t maxL=;
for(int l=,r=;r<s.size();++r)
{
if (!set.count(s[r])) // 当前判断的元素不存在于滑动窗口[l,r-1]中
set.insert(s[r]); // 将元素放入滑动窗口(即记录不重复字符)
else // 当前判断的元素已经存在于滑动窗口[l,r-1]中
{
while(set.count(s[r])) // 从左缩短窗口,直到剔除当前判断的元素为止
set.erase(s[l++]);
set.insert(s[r]); // 将当前判断元素放入到滑动窗口中
}
maxL=max(maxL,set.size()); // 更新无重复字符的最长子串
}
return maxL;
}

最新文章

  1. 【Web动画】CSS3 3D 行星运转 &amp;&amp; 浏览器渲染原理
  2. bx, bp, si, di寄存器的使用规则
  3. Windows Server 2008 R2 负载平衡入门篇
  4. 《linux内核设计与实现》读书笔记第十八章
  5. 带事物处理的DBHelp和sql语句
  6. 深入理解Javascript闭包 新手版
  7. Python 3学习笔记2
  8. ENVI5.1安装破解教程
  9. 【转】Xcode 7 真机调试详细步骤
  10. NCPC 2015 - Problem A - Adjoin the Networks
  11. runat=&quot;server&quot; 是什么意思?
  12. LeetCode OJ 202. Happy Number
  13. phpdocumentor 安装以及使用说明
  14. CSS怎么在项目里引入自定义字体(@font-face)
  15. C# 如何获取可执行文件路径的上上级目录
  16. 网工的Linux系统学习历程
  17. jQuery 操作Cookie
  18. Alpha冲刺 - (5/10)
  19. 一次mysql数据关于union+concat用法的记录
  20. JavaScript数组转字符串,字符串转数组

热门文章

  1. eclipse自动提示功能没了的解决办法
  2. python习题-用交集方式产生随机密码
  3. 如何在MySQL中查询当前数据上一条和下一条的记录
  4. codeforces 707D D. Persistent Bookcase(dfs)
  5. C语言小程序(五)、数组查询
  6. 无旋Treap - BZOJ1014火星人 &amp; 可持久化版文艺平衡树
  7. linux 在后台运行数据库导入导出命令
  8. bzoj 3439: Kpm的MC密码 Trie+动态开点线段树
  9. bzoj 3689: 异或之 Trie+堆
  10. params 和 query 传参的区别