码迷,mamicode.com
首页 > 其他好文 > 详细

最长不含重复字符的子字符串

时间:2019-03-21 17:12:11      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:har   new   dex   url   font   class   str   长度   i++   

输入一个字符串(只包含 a~z 的字符),求其最长不含重复字符的子字符串的长度。例如对于 arabcacfr,最长不含重复字符的子字符串为 acfr,长度为 4。

 

 1     public static int longestSubStringWithoutDuplication(String str) {
 2         int curLen = 0 ;
 3         int maxLen = 0 ;
 4         int[] preIndex = new int[26] ;
 5         for(int i = 0 ; i < 26 ; i++){
 6             preIndex[i] = -1;
 7         }
 8         for(int i = 0 ; i < str.length() ; i++){
 9             int c = str.charAt(i) - ‘a‘ ;
10             int pre = preIndex[c] ;
11             if (pre == -1 || i - pre > curLen){
12                 curLen++ ;
13             }else{
14                 curLen = i - pre ;
15             }
16             preIndex[c] = i ;
17             maxLen = Math.max(maxLen,curLen) ;
18         }
19         return maxLen ;
20     }

 

最长不含重复字符的子字符串

标签:har   new   dex   url   font   class   str   长度   i++   

原文地址:https://www.cnblogs.com/mengchunchen/p/10572792.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!