在一个以空格分隔的字符串中,求最长子串长度,时间和空间复杂度尽可

2019-04-23  本文已影响0人  Matt_Z_

解决方案:下面使用C语言实现的

先说一下:思路
1.首先定义两个变量maxCount用来存储最长串的长度,count当前串的长度
2.对串从左到右进行遍历,遇到字符串开始计算count值+1,遇到空格,将当前串的长度与定义的maxCount进行比较,如果大于maxCount,则覆盖掉,小于的话不做处理
3.结束循环后,打印maxCount

char str[] = "a bc defg ghi j k l mn op q";
        int count = 0;     // 计算每组的长度
        int maxCount = 0;  // 存储最长字符串长度

        // 循环遍历
        for (int i = 0; i < strlen(str); i++) {

            //当前取到的值为空格或者'\0'
            if (str[i] == ' ' || str[i]=='\0' ) {
                
                maxCount = maxCount > count ? maxCount:count;
                count = 0;
                
            }else { 
                
                count++; //当前取的值为字符
            }
            
        }
        printf("\n");
        printf("maxCount = %d\n",maxCount);

上一篇 下一篇

猜你喜欢

热点阅读