无重复最长字串 (C++)
题目描述:
给定一个字符串,找出不含有重复字符的最长子串的长度。
示例:
给定 "abcabcbb"
,没有重复字符的最长子串是 "abc"
,那么长度就是3。
给定 "bbbbb"
,最长的子串就是 "b"
,长度是1。
给定 "pwwkew"
,最长子串是 "wke"
,长度是3。请注意答案必须是一个子串,"pwke"
是 子序列而不是子串。
【无重复最长字串 (C++)】加入用暴力就没什么好说的了,暴力的时间是o(o^3),用map优化的滑动窗口时间只需要O(n);
大致思路是:用stl中的map存储记录当前无重复最长字串的字符,向后依次滑动,每遇到一个字符就判断这个字符是否在map记录中,如果有则判断这个重复的记录是否在当前无重复最长字串中,如果在就截断这个无重复最长字串,如果没有无重复最长字串的长度+1,并记录该字符。
代码如下:
#include
#include
#include
#include
推荐阅读
- 学无止境,人生还很长
- jhipster|jhipster 升级无效问题
- 说的真好
- 解决SpringBoot引用别的模块无法注入的问题
- 抱着梦的无眠
- 松软可口易消化,无需烤箱超简单,新手麻麻也能轻松成功~
- 公园游
- 2018-07-27读书心得
- 今天“大暑”!“赤日几时过,清风无处寻!”
- 无故.