`
zy3381
  • 浏览: 155477 次
  • 性别: Icon_minigender_1
  • 来自: 昆明
社区版块
存档分类
最新评论

零幺串

阅读更多

我们称用1和0组成的串为“零幺串”,称只用1组成的串为“幺串”,称只用0组成的串为“零串”。试写一个函数(过程),使得它对任给零幺串S,将返回一个值N1和值N0,其中N1表示S中最长幺串的长度,N0表示S中最长零串的长度。例如,假设S是下面表示的零幺串,则在N1中返回4,在N0中返回3 S=00010111001110001111


基本思路是设置两个标志位来交替统计0和1的最长子串长度


#include<stdio.h>
void main()
{
    char str[100] = "00010111001110001111";
    int i=0;
    int maxZero=0, maxOne=0;
    int flagZero=0, flagOne=0;
//    scanf("%s", str);

    while(str[i] != '\0')
    {
        if(str[i] == '0')
        {
            flagOne = 0;
            if(flagZero == 1)
            {
                maxZero++;
            }
            else
            {
                flagZero = 1;
                maxZero = 1;
            }
        }
        if(str[i] == '1')
        {
            flagZero = 0;
            if(flagOne == 1)
            {
                maxOne++;
            }
            else
            {
                maxOne = 1;
                flagOne = 1;
            }
        }
        i++;
    }

    printf("N0:%d N1:%d", maxZero, maxOne);
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics