LeetCode------Longest Substring Without Repeating Characters
来源:互联网 发布:淘宝熊家通讯 编辑:程序博客网 时间:2024/05/20 12:49
题目简介
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.
自己的解法
- public class Solution {
public int lengthOfLongestSubstring(String s) {
int add=0;
int count=0;
StringBuffer S=new StringBuffer(s);
while(s.length()!=1){
char a=s.charAt(0);
int i=0;
while(i!=-1){
if(i==s.length()-1){
count--;
break;
}
S.deleteCharAt(i);
i=s.indexOf(a,i+1);
}
s=S.toString();
count++;
}
return count;
}
}
我的思路是,找一个字符删掉字符串中所有与它相同的字符。count++,直到最后字符串的长度为0,返回count即可。但是在oj上始终说我deleteCharAt函数有问题,最后发现是deleteCharAt函数不能删除最后一位,但后来加上了判断还是有问题。最后还是放弃了,感觉自己还是对deleteCharAt函数不太了解。
Hot解法
- public class Solution {
public int lengthOfLongestSubstring(String s) {
if (s.length()==0) return 0;
HashMap<Character, Integer> map = new HashMap<Character, Integer>();
int max=0;
for (int i=0, j=0; i<s.length(); ++i){
if (map.containsKey(s.charAt(i))){
j = Math.max(j,map.get(s.charAt(i))+1);
}
map.put(s.charAt(i),i);
max = Math.max(max,i-j+1);
}
return max;
}
}
看了很长时间,加上了自己的一些调试,总算弄懂了hot解法的代码,但是还不是很理解,只是停留在了能看懂的层面,知道了HashMap和Map的区别,Map是一个接口,HashMap是Map的一个实现类,它实现了所有的Map的方法。目前只是能看懂,但我觉得随着做的题目的增加和对Map的更多的使用,日后应该会理解的。
0 0
- LeetCode: Longest Substring Without Repeating Characters
- LeetCode Longest Substring Without Repeating Characters
- LeetCode: Longest Substring Without Repeating Characters
- [Leetcode] Longest Substring Without Repeating Characters
- leetcode 23: Longest Substring Without Repeating Characters
- [LeetCode] Longest Substring Without Repeating Characters
- LeetCode 3 - Longest Substring Without Repeating Characters
- [LeetCode]Longest Substring Without Repeating Characters
- leetcode Longest Substring Without Repeating Characters
- 【leetcode】 Longest Substring Without Repeating Characters
- LeetCode-Longest Substring Without Repeating Characters
- [LeetCode] Longest Substring Without Repeating Characters
- [LeetCode] Longest Substring Without Repeating Characters
- [leetcode] Longest Substring Without Repeating Characters
- LeetCode - Longest Substring Without Repeating Characters
- LeetCode 3: Longest Substring Without Repeating Characters
- leetcode-3:Longest Substring Without Repeating Characters
- leetcode之Longest Substring Without Repeating Characters
- 在空白处点击,实现隐藏div(下拉菜单或其它弹框)的方法
- POI之Excel单元格合并
- [LeetCode]189. Rotate Array
- 单例模式
- window下的github使用步骤
- LeetCode------Longest Substring Without Repeating Characters
- mysql外键(FOREIGN KEY)的简单使用
- zsh
- linux内核编译
- 树的子结构
- JAVA中最常见到的exception
- 数据结构----图
- 指针数组与数组指针
- 基于Windows系统的VMWare Workstation及Linux-CentOS系统下载及安装最全ui详解关联