给定一个字符串,找出不含有重复字符的 最长子串 的长度。

示例:

给定 "abcabcbb" ,没有重复字符的最长子串是 "abc" ,那么长度就是3。

给定 "bbbbb" ,最长的子串就是 "b" ,长度是1。

给定 "pwwkew" ,最长子串是 "wke" ,长度是3。请注意答案必须是一个子串"pwke" 是 子序列 而不是子串。

 

//要改

#include "stdio.h"
#include "string.h"
    int lengthOfLongestSubstring(char* s) {
    int i=0,j,a[20],max;
    char *q=++s;
    a[0]=1;
    for(i=0;*q!='\0';i++)
    {
       
        if(*q==*s)
        {
            s++;
            q++;
            a[i+1]=1;
        }
        else
            a[i+1]++;
    }
    max=a[1];
    for(j=1;j<i+1;j++)
    {
        
        if(a[j+1]>max)
            max=a[j+1];
    }

    
    
    return(max+1);
    }
  void main()
  {
      char s[12];
      int i;
      gets(s);
      i=lengthOfLongestSubstring(s);
      printf("%d\n",i);
  }

 posted on 2018-04-08 23:13  加油!!!  阅读(174)  评论(0)    收藏  举报