【问题标题】:Recursively calculate length of string (error: list index out of range)递归计算字符串长度(错误:列表索引超出范围)
【发布时间】:2018-08-31 00:59:50
【问题描述】:

这是我的代码,它应该递归地计算字符串的长度,但是它给出了列表索引超出范围的错误。请纠正我!

s=list()
smallOutput=int()
def lengthh(s):
    if (s[0]=='\0'):
        return 0

    smallOutput=lengthh(s[1:])
    return 1 + smallOutput

strr="abc"
array=list(strr)
print lengthh(array)

【问题讨论】:

  • if not s: 应该可以解决它...python 通常不会以空字节结束字符串...
  • 有什么办法可以在里面加一个空字节吗?
  • 顺便说一下(如果不是 s:) 完全为我工作!谢谢。

标签: python string recursion indexing string-length


【解决方案1】:

您的代码假定字符串以null 字节结尾。由于您没有明确地将这样的终止符添加到您的字符串中,因此没有,并且您跑出了列表的末尾。试试

if len(s) == 0:
    return 0

或者,假设你不允许使用len,就

if s:

或许

try:
    dummy = s[0]
exception:
    return 0

【讨论】:

    猜你喜欢
    • 2021-07-23
    • 1970-01-01
    • 1970-01-01
    • 2013-09-25
    • 2015-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-25
    相关资源
    最近更新 更多