网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

java如何求无重复字符的最长子串

这篇文章将为大家详细讲解有关java如何求无重复字符的最长子串,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

“只有客户发展了,才有我们的生存与发展!”这是成都创新互联公司的服务宗旨!把网站当作互联网产品,产品思维更注重全局思维、需求分析和迭代思维,在网站建设中就是为了建设一个不仅审美在线,而且实用性极高的网站。创新互联对成都网站建设、成都网站设计、网站制作、网站开发、网页设计、网站优化、网络推广、探索永无止境。

无重复字符的最长子串

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

提示:

0 <= s.length <= 5 * 104 s 由英文字母、数字、符号和空格组成

力扣链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters

示例 1:

输入 s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。

示例 2:

输入: s = "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。

示例 3:

输入: s = "" 输出: 0

/*
		String s = "abcabcffhbb"; 
		//string   a b c a b c f f h b b 
		//map      0 1 2 3 4 5 6 7 8 9 10 map记录字符最后一次出现的位置,(a,0)->(a,3)
		//[ ]      1 2 3 3 3 3 4 1 2 3 1  记录s.toCharArray()数组对应字符的最大子串长度
*/

class Solution {
    public int lengthOfLongestSubstring(String s) {
        if(s.length() == 0){
            return 0;
        }
        char[] arr = s.toCharArray();
        int len = s.length();
		// 记录字符最后一次出现的位置
		Map map_index = new HashMap();
		// 记录s.toCharArray()数组对应字符的最大子串长度
		int[] distance = new int[len];
		map_index.put(arr[0],0);
		distance[0] = 1;
        int max = 1;
		int index;
		for(int i=1;i

使用了数组记录字符串中每个字符对应的最大子串长度,map则是记录某个字符最后一次出现的位置。用前一个字符+1与相同字符的距离进行比较,求出不重复的子串长度。

关于“java如何求无重复字符的最长子串”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。


新闻标题:java如何求无重复字符的最长子串
文章地址:http://bjjierui.cn/article/ppdggj.html

其他资讯