博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode 3. Longest Substring Without Repeating Characters
阅读量:5983 次
发布时间:2019-06-20

本文共 1105 字,大约阅读时间需要 3 分钟。

 

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.

 

思路:因为字符的ascii码在256范围内,貌似设置为130也是可以的。然后用key数组记录此字符上一次的位置。用cur表示以前一个字符为结尾的符合无重复的最大子串。

用字符当前位置与上次出现的位置为包含此位置字符的最大可能字串即i-key[i],如cur>i-key[i],则此字符已经在cur中出现过,则以此位置结尾的最大子串为i-key[i]. 否则cur中没有包含次字符,++cur为此位置最大子串。

1 class Solution { 2 public: 3     int lengthOfLongestSubstring(string s) { 4         int key[256]; 5         int i,max=0,cur=0; 6         for(i=0;i<256;i++) 7           key[i]=-1; 8         for(i=0;i
= i-key[s[i]])15 cur = i-key[s[i]];16 else17 cur++;18 key[s[i]]=i;19 }20 if(cur>max)21 max = cur;22 }23 return max;24 }25 };

在leetcode上时间为16ms.

转载于:https://www.cnblogs.com/aiheshan/p/5695395.html

你可能感兴趣的文章
从1G到5G,46年屏幕变迁下,富士康、苹果、三星、华为的浴火重生路 ...
查看>>
用flash测试你的ircd
查看>>
白话红黑树系列之二——红黑树的构建
查看>>
客户的一张表中出现重复数据,而该列由唯一键约束,重复值如何产生的呢?...
查看>>
MySQL5.6中新增特性、不推荐使用的功能以及废弃的功能
查看>>
OnePlus安装Kali-NetHunter
查看>>
JavaScript:Array 对象
查看>>
PDFCreator:一款免费,开源的PDF(Tiff,pcx,png,jpeg,bmp,PS,EPS)打印机(VB,GPL),并提供了COM接口,方便使用各种编程语言调用...
查看>>
Note 1773479 - SYB: Displaying multiple triggers per object
查看>>
联手云计算核心技术开发,BoCloud与中科院软件所战略合作
查看>>
2017年背景下的SSD选购技巧有哪些变化?
查看>>
2016年的数据存储和管理的成本将何去何从?
查看>>
Airpods 并非无用,而是苹果借助语音交互布局物联网的新“棋子”
查看>>
项目总结:数据迁移测试
查看>>
SQL中存储过程的创建和使用
查看>>
荷兰政府:保证不强制在任何产品中留有后门
查看>>
编写单元测试的10条理由
查看>>
LINUX-SAMBA服务配置
查看>>
图像处理------光束效果
查看>>
剑指offer 面试题6:重建二叉树
查看>>