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

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

作者: Matt_Z_ | 来源:发表于2019-04-23 16:53 被阅读0次

解决方案:下面使用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);

相关文章

网友评论

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

      本文链接:https://www.haomeiwen.com/subject/riavgqtx.html