首页 > 其他 > 详细

计算给定字符串的无重复字符的最长子串长度

时间:2019-02-17 20:11:45      阅读:283      评论:0      收藏:0      [点我收藏+]

 

 1 int lengthOfLongestSubstring(string s) 
 2 {
 3     int size = s.size();/*字符串长度*/
 4     vector<int> dict(256,-1);/*用来存储字符串中字符出现的位置*/
 5     int maxlen = 0;/*最大无重复字符串长度*/
 6     int start = -1;/*无重复字符串开始的位置*/
 7     for (int i=0; i<size; ++i) 
 8     {       
 9         if (dict[s[i]] > start) /*一旦某字符有了位置记录 说明该字符重复出现*/
10         {
11             start = dict[s[i]]; /*把该字符上次出现的位置 记录为字符串开始位置*/                  
12         }
13         dict[s[i]] = i; /*记录字符出现的位置 更新*/ 
14         maxlen = max(maxlen, i - start);  /*实时计算无重复字符串长度*/
15     }
16     return maxlen;/*返回最大无重复字符串长度*/
17 }

 

计算给定字符串的无重复字符的最长子串长度

原文:https://www.cnblogs.com/GoldenEllipsis/p/10392236.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!