【LeetCode】3 Longest Substring Without Repeating Characters

原创 2015年07月07日 22:38:36
Given a string, find the length of the longest substring without repeating characters. For example, the longest substring without repeating letters for "abcabcbb" is "abc", which the length is 3. For "bbbbb" the longest substring is "b", with the length of 1.

Solution1

public class Solution {
    public int lengthOfLongestSubstring(String s) {
        boolean []exist = new boolean[256];
        int i=0,maxLen = 0;
        for(int j=0;j<s.length();j++)
        {
            while(exist[s.charAt(j)])
            {
                exist[s.charAt(i)] = false;
                i++;
            }
            exist[s.charAt(j)]=true;
            maxLen = Math.max(j-i+1, maxLen);
            System.out.println();
        }
        return maxLen;
    }  
}

Solution2 HashMap

public class Solution {
    public int lengthOfLongestSubstring(String s) {
        int maxLen = 0;
        int availableFrom = 0;
        Map<Character,Integer> map = new HashMap<Character,Integer>();
        for(int j=0;j<s.length();j++)
        {
            if(map.containsKey(s.charAt(j)))
            {
                int last = map.get(s.charAt(j));
                availableFrom = Math.max(availableFrom, last+1);
            }
            maxLen = Math.max(maxLen, j-availableFrom+1);
            map.put(s.charAt(j), j);
        }
        return maxLen;
    }  
}

LeetCode Longest Palindromic Substring 最长回文子字符串 两种方法分析解答

最难想的地方:P代表一个表,比较难想的就是P表的下标i和j代表原字符串中的两个前后下标s[i]和s[j]的位置。 如果P[i,j]为真,当且仅当si-1,si-2...sj-1,sj这一个子串都为pa...
  • kenden23
  • kenden23
  • 2013年11月23日 10:27
  • 2832

【LeetCode-面试算法经典-Java实现】【005-Longest Palindromic Substring(最长回文子串)】

【005-Longest Palindromic Substring(最长回文子串)】给定一个字符串S,找出它的最大的回文子串,你可以假设字符串的最大长度是1000,而且存在唯一的最长回文子串。动态规...
  • DERRANTCM
  • DERRANTCM
  • 2015年07月17日 06:42
  • 2381

3. Longest Substring Without Repeating Characters(求最长的不重复的连续的子序列。)

官网Given a string, find the length of the longest substring without repeating characters.Examples:Giv...
  • qq_16949707
  • qq_16949707
  • 2016年09月13日 15:26
  • 115

Leetcode全字符问题

目录 1、编号3 Longest Substring Without Repeating Characters 2、编号6 ZigZag Conversion 3、编号20 Valid Parent...
  • wangxiaojun911
  • wangxiaojun911
  • 2014年02月07日 08:09
  • 2841

HDU 1403 & POJ 2774 Longest Common Substring (后缀数组啊 求最长公共子串 模板题)

HDU 1403 & POJ 2774 Longest Common Substring (后缀数组啊 求最长公共子串 模板题)
  • u012860063
  • u012860063
  • 2015年03月04日 18:57
  • 927

常见算法问题之最长公共子串问题(Longest common substring problem)

对于寻找两个字符串的最长公共子字符串的问题,暴力搜索的方式的时间复杂度将高达O(n^3), 而通过后缀树的方式可将时间复杂度降低到O(n^2)。以下是我实现的C++源码:#include #incl...
  • jaye16
  • jaye16
  • 2017年02月16日 23:09
  • 314

总结最长回文子串的几种做法 Longest Palindrome Substring

题目是:找出一个字符串中的最长回文子串。 例如:abcbcbb 的最长回文子串是 bcbcb 首先一种常见的错误方法是把原字符串S倒转过来成为S‘,以为这样就将问题转化成为了求S和S’的最长公共子串的...
  • hellobinfeng
  • hellobinfeng
  • 2014年03月16日 03:21
  • 2999

【LeetCode-面试算法经典-Java实现】【003-Longest Substring Without Repeating Characters(最长非重复子字符串)】

【003-Longest Substring Without Repeating Characters(最长非重复子字符串)】给定一个字符串,找字符中的最大非重复子串用start记录当前处理的开始位置...
  • DERRANTCM
  • DERRANTCM
  • 2015年07月17日 06:35
  • 3518

LeetCode题解整理版(一)

Evaluate Reverse Polish Notation 逆波兰表达式求值,经典问题。 遇到数字入栈,遇到符号取栈顶的两个出来运算,再将结果入栈,最后栈里剩下的一个元素就是结果了。 ...
  • xualaleilei
  • xualaleilei
  • 2016年04月04日 17:30
  • 434

【算法设计与分析】3、二分搜索

/** * 书本:《算法分析与设计》 * 功能:二分搜索 * 1、设a[0:n-1]是一个已排好序的数组。请改写二分搜索算法,使得当搜索元素x不在数组中的时候,返回小于x的最大元素 * 的位置I和...
  • cutter_point
  • cutter_point
  • 2014年11月16日 18:40
  • 837
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【LeetCode】3 Longest Substring Without Repeating Characters
举报原因:
原因补充:

(最多只允许输入30个字)