Leecode-无重复字符的最长子串
Posted yexia
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leecode-无重复字符的最长子串相关的知识,希望对你有一定的参考价值。
import java.util.LinkedList;
import java.util.TreeSet;
class ListNode
int val;
ListNode next;
ListNode(int x) val = x;
public class Solution
public Solution()
// TODO Auto-generated constructor stub
public static int lengthOfLongestSubstring(String s)
/*伪代码
* 初始化一个链表集合作为寻找最大不重复子串的临时存储位置
* 初始化最大长度count为0
* 遍历整个字符串
* 如果该字符在链表中不重复,加入集合
* 如果该字符在链表中已存在,首先比较当前链表长度与原coun最大值记录到count;然后删除链表链表中从开头到该重复字符(包括该字符)这段字符串;最后然后将该字符加入链表
* 遍历完成后,再比较链表长度与count,取大值为count
* 选择linkedList原因:对删除操作友好;保持插入顺序
*/
int re_count=0,curr_count=0;
LinkedList<Character> link=new LinkedList<>();
for(int i=0;i<s.length();i++)
char curr_ch = s.charAt(i);
if(link.contains(curr_ch))
curr_count = link.size();
re_count = re_count>curr_count?re_count:curr_count;//找大数
link.subList(0, link.indexOf(curr_ch)+1).clear();//删除包含重复元素及之前的。
link.add(curr_ch);//添加该元素
else
link.add(curr_ch);
curr_count = link.size();
re_count = re_count>curr_count?re_count:curr_count;//找大数_
return re_count;
public static void main(String[] args)
// TODO Auto-generated method stub
System.out.println(lengthOfLongestSubstring("dvdf"));
以上是关于Leecode-无重复字符的最长子串的主要内容,如果未能解决你的问题,请参考以下文章
Leecode03. 无重复字符的最长子串——Leecode大厂热题100道系列