zoukankan      html  css  js  c++  java
  • 【算法】java语言求不定长字符串的最长子串和长度

    public class interview6 {
        /**
         * 用java写一个最长子串,有一个字符串,不定长,比如abcdbafedcabcmonabcd,
         * 写一个方法要找出给定字符串的最长子串,最长子串是连续的不重复的字符串,返回长度(7)
         */
        @Test
        public void test(){
            String str="abcdbafedcabcmonabcd";
            int left=0;
            int maxlength=0;
            Map<String,Integer> substrs=new HashMap<>();
            StringBuilder sb=new StringBuilder();
    
            Map<Character,Integer> map=new HashMap<>();
            for(int right=0;right<str.length();right++){
                char x=str.charAt(right);
                if(map.containsKey(x)){
                    left=Math.max(left,map.get(x)+1);
                    String s = sb.toString();
                    substrs.put(s,maxlength);
                    sb=new StringBuilder(s.substring(s.indexOf(x)+1));
                }
                map.put(x,right);
                sb.append(x);
                maxlength=Math.max(maxlength,right+1-left);
            }
            substrs.put(sb.toString(),maxlength);
    
            System.out.println("最大不重复子串长度为:"+maxlength);
            Set<String> keySet = substrs.keySet();
            Iterator iterator=keySet.iterator();
            while (iterator.hasNext()){
                Object key = iterator.next();
                int value=substrs.get(key);
                System.out.println(key+"--->"+value);
            }
        }
    }
    //结果:
    //        最大不重复子串长度为:7
    //        cdb--->4
    //        cdbafe--->6
    //        monabcd--->7
    //        fedcab--->6
    //        abcmon--->6
    //        bafed--->6
    //        bcmona--->6
    //        cmonab--->6
    //        monabc--->6
    //        bafedc--->6
    //        abcd--->4
    //        fedca--->6
    每天进步一点点,快乐生活多一点。
  • 相关阅读:
    [BUUCTF 2018]Online Tool
    [ZJCTF 2019]NiZhuanSiWei 1
    [极客大挑战 2019]PHP
    [De1CTF 2019]SSRF Me
    2018网鼎杯 Fakebook
    [CISCN2019 华北赛区 Day2 Web1]Hack World
    SUCTF checkin
    强网杯 高明的黑客
    GYCTF Ezsqli
    GYCTF 盲注【regexp注入+时间盲注】
  • 原文地址:https://www.cnblogs.com/yiruliu/p/14368686.html
Copyright © 2011-2022 走看看