华为面试题答案找出最大长度子字符串

时间:2022-04-03 07:10:36

复制代码 代码如下:


int findMaxSubstring(char* str)
{
    int maxLength = 0;
    int maxStartIndex = 0;
    int curLength = 0;
    int curStartIndex = 0;
    bool isFind = 0;
    for(unsigned int i = 0;i<strlen(str);i++)
    {
        if(str[i] >= 'a' && str[i] <= 'z')
        {
            if(isFind == 0)
            {
                isFind = 1;
                curLength = 1;
                curStartIndex = i;
            }
            else
            {
                curLength++;
            }
        }
        else if (str[i] < 'a' || str[i] > 'z')
        {
           isFind = 0;
           if(curLength > maxLength)
           {
              maxLength = curLength;
              maxStartIndex = curStartIndex;
              curLength = 0;
           }
        }
    }
    char *p = NULL;
    p = &str[maxStartIndex];
    while(*p >= 'a' && *p <= 'z')
    {
        putchar(*p);
        p++;
    }
    return maxLength;
}