LeeCode 无重复字符串的最长子串
Posted DennisJu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeeCode 无重复字符串的最长子串相关的知识,希望对你有一定的参考价值。
3、给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
class Solution {
public int lengthOfLongestSubstring(String s) {
//1、这里借鉴第一题的思路,字符串其实就是一个字符数组
//2、将字符从数组中取出,放到另一个字符数组中,逐一排查,并用一个数字记录最长不重复子串长度,如果查到当前的字符在以往数组中已经存在了则比较当前数组长度与计数值大小取最大值
//3、如果没有到字符串结尾就清除已存在数据之前的字符然后继续重复步骤2
int maxSubStrLength = 0;
int tempSum = 0;
String recordSubStr = "";
int strLength = s.length();
for (int i = 0; i < strLength; ++i){
String tempC = s.charAt(i)+"";
if (recordSubStr.contains(tempC)){
maxSubStrLength = Math.max(tempSum, maxSubStrLength);
int index = recordSubStr.lastIndexOf(tempC) + 1;
recordSubStr += tempC;
recordSubStr = recordSubStr.substring(index, recordSubStr.length());
tempSum = recordSubStr.length();
}else {
recordSubStr += tempC;
tempSum++;//针对无重复数字
}
}
return Math.max(tempSum, maxSubStrLength);
}
}
以上是关于LeeCode 无重复字符串的最长子串的主要内容,如果未能解决你的问题,请参考以下文章