[leetcode]3无重复字符的最长字串

Posted 冷血无情康纳酱

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[leetcode]3无重复字符的最长字串相关的知识,希望对你有一定的参考价值。

本题思路较清楚,通过一个数组记录各个位置所能够引导的最长字符串的长度即可。

 

稍微有一点难度在于如何向前寻找时判断已经出现了重复字符串,我采用的思路为只有当前项的长度等于当前长度时,认为尚未出现重复字符串,并更新前项长度++。

 1 int max=0;
 2     int st[100000]={0};//表示以它为开头的最长不重复字串长度
 3     int i=0;
 4     char p;
 5     while(s[i]!=)
 6     {
 7         p=s[i];
 8         st[i]=1;
 9         max=st[i];
10         for(int j=i-1;j>=0;j--)
11         {
12             if(s[j]!=p)
13                 if(st[j]==max)//消除中间重复项
14                 {
15                     st[j]++;
16                     max++;
17                 }
18                 else
19                     break;
20             else
21                 break;
22         }
23         i++;
24     }
25     max=0;
26     for(int j=0;j<i;j++)
27         if (max<st[j])
28             max=st[j];
29     return max;

 

以上是关于[leetcode]3无重复字符的最长字串的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode3:最长不重复字串

无重复字符的最长字串问题

编程练习:无重复字符的最长字串

《LeetCode之每日一题》:78.无重复字符的最长字串

leetcode第三题 无重复的最长字串

leetcode-3 无重复字符的最长字串(滑动窗口,unordered_set, st.find(string[i]))