【发布时间】:2017-02-06 14:23:35
【问题描述】:
对于一个家庭作业问题,我们被要求定义一个函数来计算二进制字符串中连续数字的数量,并返回数字。
例如,对于二进制输入S = ‘1111000000001111000111111111111111’,函数应该返回n = [4,8,4,3,15]。
到目前为止我有这个,但我知道它不正确,我不知道从这里去哪里。任何帮助将不胜感激!
def consecutive_length(s):
if s == '':
return 0
if s[0] == 0:
return 0
return 1 + consecutive_length(s[1:])
注意: 我们不能使用任何循环。我们需要通过递归来做到这一点。
谢谢!
【问题讨论】:
-
写一个简单的循环遍历字符串,跟踪最后找到的数字,每当下一个字符与被跟踪的字符相同时递增计数器。当字符发生变化时,将计数器添加到列表中并重新初始化计数器。
-
@innoSPG 这是我最初的想法,但我们不允许使用任何循环。
标签: python recursion binary compression