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