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

字符串中无重复字符的最长字串的长度

时间:2021-04-26 13:04:14      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:子序列   max   动态   需要   longest   char   substr   list   contains   

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。

分析:这里需要注意的是,是要找出字串,而不是子序列,字串是连续的,子序列可以不是连续的,若是要找的是子序列,那么就有些麻烦了,会用到动态规划

代码分析:

class Solution {
    public int lengthOfLongestSubstring(String s) {
        int length = s.length();
        if(s.equals("")){
            return 0;
        }
        if(length == 1){
            return 1;
        }
        //不重复子串的长度
        int num = 1;
  //元素就是不重复子串的长度
        ArrayList<Integer> arr = new ArrayList<>();
        for(int i=0;i<length;i++){
            for(int j=i+1;j<length;j++){
                String sub = s.substring(i,j);//截取子串[)
                char a = s.charAt(j);//返回j下标的元素
                String b = String.valueOf(a);//字符转换为字符串
                if(sub.contains(b)){//contains()中参数必须是字符序列,也可以是字符串,不能是char
                    break;
                }else{
                    num++;
                }
            }
            arr.add(num);
            num=1;
        }
        //比较,取得arr中的最大值
        int max = arr.get(0);
        for(int i=0;i<arr.size();i++){
            if(arr.get(i)>=max){
                max = arr.get(i);
            }
        }
        return max;
    }
}

字符串中无重复字符的最长字串的长度

标签:子序列   max   动态   需要   longest   char   substr   list   contains   

原文地址:https://www.cnblogs.com/lwhao80/p/14697082.html

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