【发布时间】:2020-07-22 18:04:05
【问题描述】:
我目前正在我的 Python 类中进行递归,我遇到了这个问题。这两个函数通过检查字符串 a 是否是字符串 b 的子字符串来协同工作。如果字符串 a 是字符串 b 的子字符串,则程序应该返回 True。如果不是,则返回 False。但是,当我尝试执行程序时,返回的唯一值是 None。我对该怎么做感到困惑。谢谢!
def is_subsequence(string_a, string_b):
pos_a = 0
pos_b = 0
contains_string(string_a, string_b, pos_a, pos_b)
def contains_string(string_a, string_b, pos_a, pos_b):
if(pos_a == len(string_a) - 1):
return True
if(pos_b == len(string_b) - 1):
return False
if(string_a[pos_a] != string_b[pos_b]):
pos_b = pos_b + 1
return contains_string(string_a, string_b, pos_a, pos_b)
if(string_a[pos_a] == string_b[pos_b]):
pos_a = pos_a + 1
pos_b = pos_b + 1
return contains_string(string_a, string_b, pos_a, pos_b)
else:
return False
【问题讨论】:
-
第一个函数中要
return contains_string(string_a, string_b, pos_a, pos_b),否则默认返回None。