美文网首页
找出字符串的最长不重复子串,输出长度

找出字符串的最长不重复子串,输出长度

作者: Green_Apple | 来源:发表于2017-08-09 16:32 被阅读0次

import java.util.HashMap;
import java.util.Map;

/*

  • 找出字符串的最长不重复子串,输出长度

  • /
    public class FaceFive {
    /

    • 该题,可以用hash解

    • 字符的个数是有限的255

    • 所以采用数组255来做字符保存

    • 从头到尾,扫描,用期间最长的长度作为跨度,一步一步推进 maxlen=j-i

    • 与之前的max最比较得出最大的数

    • */
      private static int getResult(String value){
      if(value==null||value.length()==0)
      return 0;
      char[] s=value.toCharArray();
      int i = 0, j = 0;
      int n = s.length;
      int maxLen = -1;
      boolean exists[] = new boolean[256];

      while (j < n)
      {
      if (exists[s[j]])
      {
      maxLen = Math.max(maxLen, j - i);
      System.out.println(j+"-"+i+"="+(j-i));
      while (s[i] != s[j])//遇到相同的字符则直接退出
      {
      exists[s[i]] = false;//在当前最大的长度区间内不同字符设置为false
      i++;
      }
      i++;//代表跳过一个位置
      }
      else
      {
      exists[s[j]] = true;
      }
      j++;
      }
      /*

      • 考虑到所有字符都不同且长度<255的情况
        maxLen并没有进入while循环中而没有更新
        要在最后更新一次
      • */
        maxLen = Math.max(maxLen, j - i);

      return maxLen;
      }

    public static void main(String[] args) {
    String value=new String("abaaabcdefdde");
    System.out.println(" "+getResult(value));
    }
    }

相关文章

  • 【python欢聚时代】计算重复字符串长度?

    题目:请从字符串中找出至少重复一次的子字符串的最大长度 输入描述: 字符串,长度不超过1000 输出描述: 重复子...

  • 3. Loongest Substring Without Re

    题目 给定一个字符串 s,找出这个不重复字符串的最长字串长度。 解析 找出这个字符串不重复子串的最大长度。记录上一...

  • 3、Longest SubString Without Repe

    Examples:找出最长无重复子串长度Given "abcabcbb", the answer is "abc"...

  • Python编程题16--最长不重复子串

    题目 给定一个字符串,请从这个字符串中找出所有最长的没有重复字符的子串,并返回最长不重复子串的长度。 例如:字符串...

  • 无重复字符串的最长子串

    题目大意:给定一个字符串,找出不含有重复字符的最长子串的长度 解读: 1、给定abcabcbb,没有重复子串的最长...

  • 【leetcode3】 3. Longest Substrin

    关键字:最长不重复子串、双指针 难度:Medium 题目大意:求一个字符串最长不重复子串的长度 题目: Given...

  • LeetCode 3. Longest Substring Wi

    问题描述 给定一个字符串,找出最长不重复子串的长度。 栗 1: 栗 2: 栗 3: 想看英文原文的戳这里。 解题思...

  • 面试常见算法

    最长不含重复字符的子字符串: 请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。 示例...

  • 阿里面试算法题四

    最长不含有重复串的字符串 请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。 示例 1...

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

    请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。 示例: 输入:"abcabcbb"...

网友评论

      本文标题:找出字符串的最长不重复子串,输出长度

      本文链接:https://www.haomeiwen.com/subject/dqdqrxtx.html