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;
    }
};


打赏

暂无评论

发布评论