C# 实现 - 算法 3 : 求得一字符串中无重复字符的最长子字符串

题目

给定一个字符串 s,找出最长子串的长度,且没有重复字符。

Example 1:

Input:s = "abcabcbb"

Output:3

Explanation:The answer is "abc", with the length of 3.

Example 2:

Input:s = "bbbbb"

Output:1

Explanation:The answer is "b", with the length of 1.

Example 3:

Input:s = "pwwkew"

Output:3

Explanation:The answer is "wke", with the length of 3.

Example 4:

Input:s = "" 

Output:0

分析

根据该题目,最直接的算法是使用插入法,即需要遍历字符串,根据各个符合相关条件的字符串的起始和字符串的结束来比较长度大小,最后找到最长的字符串,从而返回子字符串的长度。

根据该算法,需要双重循环,且需要一个数值来记录当前找到的最长字符串的长度。所以算法的运行时间预估在O(n*n).

代码

算法

结果

结果
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容