最长无重复字符的子串
来源:互联网 发布:信息是数据的什么 编辑:程序博客网 时间:2024/05/21 09:25
最长无重复字符的子串
给定一个字符串,请找出其中无重复字符的最长子字符串。
例如,在”abcabcbb”中,其无重复字符的最长子字符串是”abc”,其长度为 3。
对于,”bbbbb”,其无重复字符的最长子字符串为”b”,长度为1。
从长度为1的最长子串开始,长度为2的子串必然为某个长度为1的子串+1。
得到方程 对于字符串数组a[]的元素i,用数组dp[]记录以i为开头的长度为n的子串是否为一个无重复子串,每次只需要检查新加入的元素是否重复.
import java.util.ArrayList;import java.util.LinkedHashMap;import java.util.List;public class Solution { public int lengthOfLongestSubstring(String s) { // write your code here if(s.equals("")){ return 0; } char a[]=s.toCharArray(); boolean dp[]=new boolean [a.length]; for(int j=0;j<dp.length;j++){ dp[j]=true; } int length=1; for(int i=1;i<a.length;i++){ boolean bool=false; for(int j=0;j<a.length-i;j++){ if(dp[j+1]&&in(a,j,j+i)){ dp[j]=true; bool=true; }else{ dp[j]=false; } } if(bool==false){ length=i; break; } if((bool==true&&i==a.length-1)){ length=i+1; } } return length; } public boolean in(char [] a,int start,int end){ for(int i=start+1;i<=end;i++){ if(a[start]==a[i]){ return false; } } return true; }}
0 0
- 最长无重复字符的子串
- 最长无重复字符的子串
- 最长无重复字符的子串
- 最长无重复字符的子串
- 最长无重复字符的子串
- 最长无重复字符的子串
- 最长无重复字符的子串
- 最长无重复字符的子串
- 最长无重复字符子串
- 最长无重复字符子串
- 最长无重复字符子串
- 最长无重复字符子串练习题
- 最长无重复字符子串
- 最长无重复字符子串
- 最长无重复字符子串
- 最长无重复字符子串
- 最长无重复字符子串
- 最长无重复字符子串
- 重写ListView onMeasure后,最后一条item显示不全的问题
- ORACLE的snapshot 快照
- blade模板的使用
- swoole学习笔记(四)TCP客服端
- IDEA无效的源发行版: 1.8,解决方案
- 最长无重复字符的子串
- java源码-Objects
- RapidXml 读取文件并遍历节点的所有属性
- 将request中的json字符串转换为json对象
- 线程安全与可重入函数
- JS:让日期更加智能化地显示
- Android 自定义软键盘
- V8嵌入指南
- mybatis 存储过程,游标