LeetCode03 最长无重复子串
题目
给定一个字符串,找出不含有重复字符的最长子串的长度。
解答
刚开始以为只是一遍遍历后来的字符和前面一样便开始算新子串,给的案例都过了,但是卡在了“dvdf”
后来经过重重试验,暴力循环,不断调整变量作用域,在经过
“ohvhjdml”
“bbbbb”
“abcabcbb”
“pwwkew”
“ppkw”
“ak”
这几个字符串的测试下,暴力法终于通过了,但是用时较长
后来又尝试了哈希表缩边界的方法,相对简洁快速
var lengthOfLongestSubstring = function(s) {
var hash= new hashTable();
let maxl=0;
for(let i=0,j=0; j<s.length;j++)
{
hash.containsKey(s[j])&& ( i = Math.max(hash.getValue(s[j]),i)); //重复子串,缩小左边界
maxl = Math.max(maxl,j-i+1);
hash.add(s[j],j+1);
}
return maxl;
};
心得:
- 在网上查资料的时候发现比较优雅的条件判断,把没有else的if判断改成与或非判断的表达式,简洁优雅还省时间;
- 中间卡的时间比较长的就是“dvdf”和“aab”,在用暴力法解答的时候前者我没有考虑“vdf"的情况,字符串被分隔成了“dv”,“df”,后来又加在字符是字符串唯一的时候的条件判断,后者是判断条件不全字符串被分割成了“a”,“a”,“b”,加了第二个字母等于第一个字母时候的特殊条件判断,暴力法就稳了
- 换哈希表的时候参考官方的优化边界方法,后来发现不太理解的地方是最后的j+1,试过把j+1和上面的j-i+1的+1删掉。别的测试都没事,但是无重复的子串会少算一个。目前理解是多少个树和中间的坑的问题
LeetCode03 最长无重复子串的更多相关文章
- [LeetCode] Longest Substring Without Repeating Characters 最长无重复子串
Given a string, find the length of the longest substring without repeating characters. For example, ...
- 最长无重复子串问题 leetcode 3
一.代码及注释 class Solution { public: int lengthOfLongestSubstring(string s) { int n = s.size(); //字符串的长度 ...
- [LeetCode] 3.Longest Substring Without Repeating Characters 最长无重复子串
Given a string, find the length of the longest substring without repeating characters. Example 1: In ...
- [LeetCode] Longest Substring Without Repeating Characters最长无重复子串
Given a string, find the length of the longest substring without repeating characters. For example, ...
- 【LeetCode】3.Longest Substring Without Repeating Characters 最长无重复子串
题目: Given a string, find the length of the longest substring without repeating characters. Examples: ...
- leetcode 3 Longest Substring Without Repeating Characters最长无重复子串
Given a string, find the length of the longest substring without repeating characters. For example, ...
- [LeetCode] Longest Substring Without Repeating Characters 最长无重复字符的子串
Given a string, find the length of the longest substring without repeating characters. Example 1: In ...
- [LeetCode] Longest Substring Without Repeating Characters 最长无重复字符的子串 C++实现java实现
最长无重复字符的子串 Given a string, find the length of the longest substring without repeating characters. Ex ...
- lintcode: 最长无重复字符的子串
题目 最长无重复字符的子串给定一个字符串,请找出其中无重复字符的最长子字符串. 例如,在"abcabcbb"中,其无重复字符的最长子字符串是"abc",其长度为 ...
随机推荐
- 支持Linux系统的加密狗
深思数盾 https://www.sense.com.cn/ 产品:精锐5 版本:标准版.精灵版.IE版.时钟锁 快速实现高安全度的软件保护,轻松定义多种授权模式1.防止软件盗版,防止逆向工程 通过增 ...
- 【Git】修改git远程连接ip
- ORA-00600: 内部错误代码, 参数: [kcm_headroom_warn_1], [], [], [], [], [], [], [], [], [], [], []
SQL*Plus: Release 11.2.0.4.0 Production on 星期三 1月 1 08:53:48 2003 Copyright (c) 1982, 2013, Oracle. ...
- [linux系统]XFS (vda3):Corruption detected.Unmount and run xfs_repair 简单解决办法
今天kvm的centos系统,rm -rf时报错,具体如下: rm: cannot remove ‘log-0/case1/log_net’: Input/output errorrm: cannot ...
- 训练集(train set),验证集(validation set)和测试集(test set)
把数据集分为三部分,分别为:训练集(train set),验证集(validation set)和测试集(test set). 具体比例有各种说法.待补充 测试集是为了测模型泛化能力,不能在训练的时候 ...
- 把玩Pencil项目之编译并运行
Pencil是个好项目.使用Electron作为运行环境,如同Vs Code一样,将JS跨平台桌面应用做了一个好的示范.个人很喜欢这种方式,毕竟多年来关注Web全栈开发,有一种JS一统天下的感觉.我的 ...
- windows----------火狐浏览器访问所有https网站都显示链接不安全解决办法
1.如有以下情况,点右边的“高级”,看看自己的错误码是否为SEC_ERROR_UNKNOWN_ISSUER 2.在地址栏键入"about:config" 点击“我了解此风险” 3. ...
- 用requests库和BeautifulSoup4库爬取新闻列表
import requests from bs4 import BeautifulSoup url='http://news.gzcc.cn/html/xiaoyuanxinwen/' res=req ...
- talend工具中往oracle插数据报ORA-01461: can bind a LONG value only for insert into a LONG colum
今天使用talend往oracle插数据报ORA-01461: can bind a LONG value only for insert into a LONG column 数据源是mysql,开 ...
- JavaScript之基础语法整理
1.数据类型(number,boolean,string,null,undefined,symbol,object) es是动态语言,弱类型语言,虽然先声明了变量,但是变量可以重新赋值任意类型 弱类型 ...