leetcode题目-第三题 无重复字符的最长子串
leetcode-cn.com(领扣),一个不错的代码练习网站
第三题 https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/description/
打败 61.94 %的选手
题目:
给定一个字符串,找出不含有重复字符的最长子串的长度。
示例 1:
输入: "abcabcbb"输出: 3 解释: 无重复字符的最长子串是 "abc",其长度为 3。
示例 2:
输入: "bbbbb"输出: 1解释: 无重复字符的最长子串是 "b",其长度为 1。
示例 3:
输入: "pwwkew"输出: 3解释: 无重复字符的最长子串是 "wke",其长度为 3。 请注意,答案必须是一个子串,"pwke" 是一个子序列 而不是子串。
我的答案:
class Solution {
public:
int ifsame(char *a,char *b)//给值最后一位不要给与头节点相同的值,有返回1,没有返回0
{
char *f = a+1;
char *s = a;
while(f!=(b+1))
{
for(s=a;s<f;s++)
{
if(*s==*f)
{return 1;}
}
f++;
}
return 0;
}
int lengthOfLongestSubstring(string s)
{
int length = 1;
char *top = &s[0];
char *end = &s[0];
char *m = &s[0];
char *n = &s[1];
while(*end!='\0'){end++;}
while(m!=end)
{
for(n=m+1;*n!=*m&&n!=end;n++)
{
if(ifsame(m,n)==0){
if(n-m+1>length){length = n-m+1;}
}
else{break;}
}
m++;
}
if(s=="\0") {length = 0;}
return length;
}
};

微信扫一扫,打赏作者吧~