3.Longest Substring Without Repeating Characters

原创 2016年08月31日 13:38:58
Given a string, find the length of the longest substring without repeating characters.

最简单的解决方式,逐渐遍历

time:o(n^2)

space:o(n)

 public int lengthOfLongestSubstring(String s) {
        int len=s.length();
        int result=0;
        
        for(int i=0;i<len;i++){
            HashSet<Character> set=new HashSet<Character>();
            for(int j=i;j<len;j++){
                if(set.contains(s.charAt(j)))
                    break;
                else
                    set.add(s.charAt(j));
            }
            if(result<set.size())
                result=set.size();
            if(result>len-i)
                break;
        }
        
        return result;
    }



改进一点:

time: o(n)

space: o(n)

将每个字符及其顺序保存在map中,循环遍历,保留2个指针,一个指针指向当前位置i,一个指向开始保证从开始字符开始到当前字符没有出现过重复的j;若当前字符在之前出现过,则更新j,j应该是j和当前第i个字符在之前出现的位置的最大值;

public int lengthOfLongestSubstring(String s) {
        if(s==null||s.length()==0)
            return 0;
        int max=1;
        HashMap<Character,Integer> map=new HashMap<Character,Integer>();
        for(int i=0,j=0;i<s.length();i++){
            if(map.containsKey(s.charAt(i))){
                if(j<(map.get(s.charAt(i))+1))
                    j=map.get(s.charAt(i))+1;
            }
            map.put(s.charAt(i),i);
            if(max<(i-j+1))
                max=i-j+1;
        }
        return max;
    }


版权声明:本文为博主原创文章,未经博主允许不得转载。

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-面试算法经典-Java实现】【003-Longest Substring Without Repeating Characters(最长非重复子字符串)】

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

Leetcode全字符问题

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

牛人总结python中string模块各属性以及函数的用法,果断转了,好东西

原文链接:http://blog.chinaunix.net/uid-25992400-id-3283846.html 任何语言都离不开字符,那就会涉及对字符的操作,尤其是脚本语言更是频繁,不管是生...
  • xiaoxiaoniaoer1
  • xiaoxiaoniaoer1
  • 2013年01月25日 17:00
  • 26055

SAX解析xml,characters方法遇到的问题

很久没有用过java SAX的原始解析方式了,今天yin
  • icefireforest
  • icefireforest
  • 2014年07月16日 19:43
  • 835

String中substring方法内存泄漏问题

众所周知,JDK中以前String类中的substring方法存在内存泄漏问题,之所以说是以前,是因为JDK1.7及以后的版本已经修复了,我看都说JDK1.6的版本也存在这个问题,但是我本机上安装的1...
  • chenleixing
  • chenleixing
  • 2015年02月08日 21:12
  • 4360

MQTT学习了解------阿冬专栏

源文档:http://public.dhe.ibm.com/software/dw/webservices/ws-mqtt/mqtt-v3r1.html MQTT V3.1 Protocol S...
  • zhangdong305
  • zhangdong305
  • 2016年06月22日 10:25
  • 3099

SQL Server数据库Substring函数使用方法小结

在SQL Server数据库操作中,我们常常会用到Substring函数,本文我们对Substring函数的使用方法进行了总结,并通过例子对它的使用方法加以说明。接下来就让我们来一起了解一下Subst...
  • fmup20115412
  • fmup20115412
  • 2014年04月20日 10:36
  • 1102

golang substring方法的几种实现

substring方法的几种实现 原生方法,直接使用slice切片实现,但此方法对于包括中文字符就截取错误 s:="abcde" fmt.Println(s[0:2]);//输出 //ab//包含中文...
  • psyuhen
  • psyuhen
  • 2016年07月22日 20:33
  • 2267

C# 之 字符串截取--Substring

说到字符串截取,大家首先相当的应该就是substring函数,今天就来给大家讲讲substring函数。 1.public String Substring(int startIndex);  ...
  • u010786678
  • u010786678
  • 2014年12月20日 09:10
  • 5367
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:3.Longest Substring Without Repeating Characters
举报原因:
原因补充:

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