首页所有驱动分类下载数据挖掘与人工智能搜索引擎与SEO技术备忘录站长随笔

无重复字符的最长子串 - 力扣题库解题(leetcode)

2020-01-20 力扣(leetcod) 浏览次数:44
 
给定一个字符串,请你找出其中不含有重复字符的 最长子串的长度。

示例 1:

输入: "abcabcbb"
输出: 3
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
示例 2:

输入: "bbbbb"
输出: 1
解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。
示例 3:

输入: "pwwkew"
输出: 3
解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。
  请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。


代码:
/*
不需要申请内存,也不需要额外用数组,就用指针对原数组的数据进行对比。

数组中的每一个字符都按照以下方法做一次,只保存最大长度值

以每一个数组字符作为起始点,将后面每一个要加入的字符都跟之前已经加入的字符做一次对比
如果发现有相同的,就停止对比,得出长度;
如果没发现有相同的字符,长度累计加1,继续往后抽取字符,继续从新遍历对比
*/
int lengthOfLongestSubstring(char * s)
{
int intResult=0;

char* sour=s; // 另外申请个指针,保护原参数
while (*sour){
int L=1; // 不重复子字符串的长度

char* next=sour;
next++;
bool bolFind=false;
while (*next){
char* find=sour;
int N=0;
while (N < L){
if (*next==*find){
bolFind=true;
break;
}
find++;
N++;
}
if (bolFind) break;
L++;
next++;
}

if (L > intResult) intResult=L; // 将得到的最长度大值保存到函数返回变量里

sour++;
}

return intResult;
}

留言

有啥想说的就说吧,有啥想问的就问吧
Good good study, day day up!

名称

Email

内容

预览(只读), 点击返回编辑.

 
最新文章
 
留言
版权所有 © 2020 mypcrun.com.
桂ICP备19002156号桂公网安备 45070202000667号
这回把网站设计得那么漂亮,这下子不会被人笑了吧。