首页 > 代码库 > LeetCode---------Longest Substring Without Repeating Characters解法
LeetCode---------Longest Substring Without Repeating Characters解法
题目如下:
Given a string, find the length of the longest substring without repeating characters.
Examples:
Given "abcabcbb"
, the answer is "abc"
, which the length is 3.
Given "bbbbb"
, the answer is "b"
, with the length of 1.
Given "pwwkew"
, the answer is "wke"
, with the length of 3. Note that the answer must be a substring, "pwke"
is a subsequence and not a substring.
大致翻译:
给出一个字符串,求出没有重复字符的最长子串的长度。
例如:
给出"abcabcbb",答案是"abc"的长度为3.
给出"bbbbb",答案是"b"的长度为1.
给出"pwwkew",答案是"wke"的长度为3. 注意答案必须是一个子串,"pwke"是一个子序列但并不是子串.
本题重点在于不重复的子串,想到HashSet是不允许存储重复的数据的,所以解法就利用HashSet来实现。
【Java代码】
public class Solution { public int lengthOfLongestSubstring(String s) { //不重复子串的长度 int length = 0; //构造不重复的set表 Set<Character> set = new HashSet<Character>(); int i = 0, j = 0; for(i = 0; i < s.length(); i++){ set.clear();//清空set表 set.add(s.charAt(i));//加入开始字符 for(j = i + 1; j < s.length(); j++){ if(set.add(s.charAt(j)));//如果成功加入,证明没有重复,程序继续 else break;//如果没成功加入,则跳出 } if(j - i >= length) length = j - i;//计算长度并保留最长长度 } return length; } }
如果有任何问题,欢迎跟我联系:xiaomenxiaomen@qq.com
我的github地址:github.com/WXRain
LeetCode---------Longest Substring Without Repeating Characters解法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。