LeetCode——无重复字符的最长子串

138 阅读1分钟

1.题目描述

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。  

输入: "pwwkew"

输出: 3 解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。

请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。   

2.我的解答

使用HashMap做一个查找功能

class Solution {
public int lengthOfLongestSubstring(String s) {
HashMap map=new HashMap<>();
char[] charArray=s.toCharArray();
boolean Flag;
int Number=0;
int MaxNumber=0;
for (int i=0;i
Flag=true;
map.clear();
int j=i;
while(Flag&&j
if(!(map.containsKey(charArray[j]))){
//map中不包含这个字符
map.put(charArray[j],j);
j=j+1;
}else {
//包含
Flag=false;
}
}
Number=map.size();
if(Number>MaxNumber){
MaxNumber=Number;
}
}
return MaxNumber;
}
}
执行结果:
通过
显示详情
执行用时:106 ms, 在所有 Java 提交中击败了14.75%的用户
内存消耗:39.2 MB, 在所有 Java 提交中击败了32.46%的用户