leetcode 无重复字符的最长子串 java实现
Posted yfyfyf947
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode 无重复字符的最长子串 java实现相关的知识,希望对你有一定的参考价值。
给定一个字符串,找出不含有重复字符的最长子串的长度。
示例:
给定 "abcabcbb"
,没有重复字符的最长子串是 "abc"
,那么长度就是3。
给定 "bbbbb"
,最长的子串就是 "b"
,长度是1。
给定 "pwwkew"
,最长子串是 "wke"
,长度是3。请注意答案必须是一个子串,"pwke"
是 子序列 而不是子串。
import java.util.LinkedList; class Solution { public int lengthOfLongestSubstring(String s) { int num=0;//记录最长子串长度 int current=0;//记录当前子串长度 char[] arr=s.toCharArray(); LinkedList<Character> temp=new LinkedList<>(); for (int i=0;i<arr.length ;i++ ) { if (!temp.contains(arr[i])) { temp.add(arr[i]); current=temp.size(); if (current>num) num=current; } else//如果新增字符与原子串中字符有重复的,删除原子串中重复字符及在它之前的字符,与新增字符组成新的子串 { temp.add(arr[i]); int first=temp.indexOf(arr[i]); for (int j=0;j<first ;j++ ) temp.remove(); temp.remove(); } } return num; }
结果
以上是关于leetcode 无重复字符的最长子串 java实现的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 3. 无重复字符的最长子串(动态规划,HashMap,Java)
LeetCode 3. 无重复字符的最长子串(动态规划,HashMap,Java)
3. 无重复字符的最长子串(LeetCode力扣算法 - java / rust)