【问题标题】:Write a program that counts the number of occurrences of "11" in an input sequence of zeros and ones in PYTHON3编写一个程序,计算 PYTHON3 中输入的 0 和 1 序列中出现“11”的次数
【发布时间】:2021-08-05 19:58:39
【问题描述】:

假设我输入一个类似 [0,0,1,1,1,0] 的列表,程序应该打印 2。我写了一个这样的简单程序:

def count11(seq):
    n= len(seq)
    print (n)
    cnt=0
    #i=0;
    print(cnt) 
    #print(i) 
    for i in range (0,n):
        if(seq[i] and seq[i+1]==1):
            cnt+=1;
            #i+=1;
    return cnt    
          
print(count11([0, 0, 1, 1, 1, 0])) 

但这种情况在极端情况下不会起作用。就像 if len(seq)=5 and at i=4 循环将显示错误。 你能帮我解决这个问题吗?提前致谢。

【问题讨论】:

  • 修复不明显?
  • 这可能很明显。但我找不到明显的修复方法
  • 所以如果你在屋顶上工作,你总是向边缘走五步,而第五步总是让你从屋顶上掉下来,你是否也去家装论坛问该怎么办? ,而不是简单地不迈出第五步而只迈出四步?这太荒谬了。
  • 提示:用KMP算法可以找到pattern(11)的起始索引
  • @archzi 你也可以买一辆奔驰去拜访住在10米外的邻居。

标签: python-3.x probability probability-theory


【解决方案1】:

解决一些问题

def count11(seq):
    n = len(seq)
    print(n)
    cnt = 0
    # i=0;
    print(cnt)
    # print(i) 
    for i in range(0, n - 1):
        if seq[i] == 1 and seq[i + 1] == 1:
            cnt += 1
            # i+=1;
    return cnt


print(count11([0, 0, 1, 1, 1, 0]))

【讨论】:

  • 非常感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多