LeetCode题解-3-Longest Substring Without Repeating Characters

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

解题思路

首先要读懂题目,它要求的是找到最长的子串,并且子串中没有出现重复的字符。

我的想法,是用一个map存储每个字符最后出现的位置,还要有个变量start,它用来记录上一次出现重复的位置,如果当前字符上一次出现的位置比start小,那么说明中间出现了重复,不能当成有效的子串。记得就是在扫描结束后,再判断一下最后一段子串。

给个图简单说明一下。 输入图片说明

参考源码

public class Solution {public int lengthOfLongestSubstring(String s) {if (s == null || s.isEmpty()) {return 0;}int max = 0;Map<Character, Integer> lastPos = new HashMap<Character, Integer>();int start = 0;lastPos.put(s.charAt(0), start);for (int i = 1; i < s.length(); i++) {char c = s.charAt(i);if (lastPos.containsKey(c) && lastPos.get(c) >= start) {if (i - start > max) {max = i - start;}start = lastPos.get(c) + 1;}lastPos.put(c, i);}if (s.length() - start > max) {max = s.length() - start;}return max;}
}

转载于:https://my.oschina.net/bonyfish/blog/841385

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/457185.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Day02-变量_数据类型和运算符

1 数据类型 不同类型的变量可以进行的运算是不同的&#xff0c;所以必须理解变量的类型&#xff0c;python中数据类型可以分为&#xff1a; 内置类型 数值类型&#xff1a;整型int&#xff0c;浮点型float&#xff0c;复数&#xff08;complex&#xff09; 35j str:字符串 b…

css hack

http://blog.csdn.net/swallowliyan/article/details/50803469转载于:https://www.cnblogs.com/annie211/p/5934035.html

java从哪学到哪_Java JVM怎么学习啊?从哪方面入手?

叮当猫咪一、 JVM的生命周期  1. JVM实例对应了一个独立运行的java程序它是进程级别  a) 启动。启动一个Java程序时&#xff0c;一个JVM实例就产生了&#xff0c;任何一个拥有public static void main(String[] args)函数的class都可以作为JVM实例运行的起点  b) 运行。m…

JMeter处理Cookie与Session

cookie 和session 的区别&#xff1a; 1、cookie数据存放在客户的浏览器上&#xff0c;session数据放在服务器上。 2、cookie不是很安全&#xff0c;别人可以分析存放在本地的COOKIE并进行COOKIE欺骗 考虑到安全应当使用session。 3、session会在一定时间内保存在服务器上。当…

Maximum sum(poj 2479)

题意&#xff1a;给一段数列&#xff0c;将这个数列分成两部分&#xff0c;使两部分的最大子段和的和最大&#xff0c;输出和/*看数据没想到是(O)n的算法&#xff0c;求出从前向后的最大子段和和从后向前的最大子段和&#xff0c;然后枚举断点。 第一次提交不小心折在数组最小值…

java futuretask 实例_java 使用Callable+FutureTask获取执行结果

之前给大家分享了使用CallableFuture获取执行结果的java示例&#xff0c;那么下面要给大家分享的就是使用CallableFutureTask获取执行结果的java示例&#xff0c;一起来看看吧。public class Test{public static void main(String[] args){//方式1ExecutorService executor Ex…

Day03-运算符和表达式

运算符和表达式​ 1. 运算符的优先级 尽量不要把一个表达式写的过于复杂&#xff0c;如果遇到复杂的需求&#xff0c;则最好分步运算 不要过多的依赖于运算符的优先级&#xff0c;否则代码的可读性太差&#xff0c;在实际的项目开发中&#xff0c;一般采用&#xff08;&#…

Eclipse中字母大小写转换快捷键

ctrlshiftx 转为大写 ctrlshifty 转为小写 转载于:https://www.cnblogs.com/stsinghua/p/6418636.html

dedecms代码研究六

今天讲的是dedecms最关键的东西&#xff0c;模板分析啦。也就是dedetag.class.php 里面的ParseTemplet方法 模板解析方法 先看看一个dedecms标签,大家心里有个数&#xff1a; {dede:arclist row10 orderbypubdate typeimage. imgwidth143 imgheight106} <li><a href&q…

Django-session的存放位置

django-session 存放位置 设置session的保存位置&#xff0c;有三种方法&#xff1a; 保存在关系数据库(db)保存在缓存数据库(cache) 或者 关系缓存数据库(cache_db) 保存在文件系统中(file) 第一种 保存在数据库中&#xff1a;需要在 INSTALL_APPS 中添加&#xff1a;djan…

允许多域名跨域 php,PHP设置多域名允许跨域访问

针对 PHP 语言设置多域名允许跨域访问服务器变量&#xff1a;服务器变量存储在 $_SERVER 数组中&#xff0c;在这个数组中有一个特殊的键值&#xff1a;HTTP_ORIGIN。这个键只在跨域的时候才会存在值&#xff0c;同源时为空字符串响应头设置允许某域名访问&#xff1a;access-c…

蚂蚁分类信息系统 5.8 信息浏览量后台自定义设置

mymps 蚂蚁分类信息是一款基于PHPMySQL的建站系统,为在各种服务器上架设分类信息以及地方门户网站提供完美的解决方案. mymps5.8 下载 蚂蚁分类系统 5.8下载 蚂蚁分类系统下载 mymps下载 蚂蚁分类信息系统 5.8 原信息浏览量后台无法自定义&#xff0c;现增加后台自定义浏览量…

MS SQL-Server快捷键

快捷键 功能 CtrlShiftB 生成解决方案 CtrlF7 生成编译 CtrlO 打开文件 CtrlShiftC 显示类视图窗口 CtrlShiftO 打开项目 F4 显示属性窗口 ShiftF4 …

python编写四位数验证码

def verifycode(request):#引入绘图模块from PIL import Image, ImageDraw, ImageFont#引入随机函数模块import random#定义变量&#xff0c;用于画面的背景色、宽、高bgcolor (random.randrange(20, 100), random.randrange(20, 100), random.randrange(20, 100))width 100h…

php 计算数据偏离度,关于偏离度的测算方法

2015年6月技术总结——关于偏离度的测算方法研究院公用事业部 路璐引言《原理》中说“偏离度是指每一种偿债来源与财富创造能力的距离&#xff0c;所体现的是偿债来源对债务安全的保障程度&#xff0c;唯有通过揭示偿债来源与财富创造能力偏离度才能真正区别每一种偿债来源的风…

Django中celery配置总结

情景&#xff1a; 用户发起request&#xff0c;并等待response返回。在本些views中&#xff0c;可能需要执行一段耗时的程序&#xff0c;那么用户就会等待很长时间&#xff0c; 造成不好的用户体验&#xff0c;比如发送邮件、手机验证码等。 使用celery后&#xff0c;情况就不…

AngularJs ng-repeat限制循环次数

重复数组&#xff1a;<ul ng-initname[1,2,3,3]><li ng-repeat"name in name track by $index">{{name}}</li> </ul> 对象&#xff1a; <ul ng-initobj{ a:"aaa", b:"bbb", c:"ccc" }><li ng-repeat…

qml demo分析(customgeometry-贝塞尔曲线)

一、效果展示 本篇文章还是带来一个简单的qt示例分析&#xff0c;且看图1效果。 图1 贝塞尔曲线 二、源码分析 该示例代码所在目录quick\scenegraph\customgeometry&#xff0c;感兴趣的同学可以自己去找&#xff0c;这篇文章我还是主要讲解源码&#xff0c;不涉及其他方面。 废…

php 打包上传的文件,PHP单文件上传原理及上传函数的打包

PHP单文件上传原理及上传函数的封装服务器(临时文件)——>指定目录,当文件进入服务器时它就是临时文件了,这时操作中要用临时文件的名称tmp_name。//在客户端设置上传文件的限制(文件类型和大小)是不安全的&#xff0c;因为客户能通过源代码修改限制&#xff0c;所以在服务端…

celery AttributeError: 'str' object has no attribute 'items'

AttributeError: str object has no attribute items python manage.py celery worker --loglevelinfo 查了好久发现原来是因为以前下的redis版本过高&#xff08; 3.0.1 &#xff09;&#xff0c;重装redis pip install redis2.10.6