python中的递归和返回值

螺环
a="003020600900305001001806400008102900700000008006708200002609500800203009005010300"
b=[]
def same_row(i,j): return (i/9 == j/9)
def same_col(i,j): return (i-j) % 9 == 0
def same_block(i,j): return (i/27 == j/27 and i%9/3 == j%9/3)
def r(a):
  i = a.find('0')
  if i == -1:
      b.append(a)
      return a

  excluded_numbers = set()
  for j in range(81):
    if same_row(i,j) or same_col(i,j) or same_block(i,j):
      excluded_numbers.add(a[j])

  for m in '123456789':
    if m not in excluded_numbers:
      return r(a[:i]+m+a[i+1:])


print r(a),b

这是一个数独求解器。它输入带有0和1-9数字的81大小的字符串,并返回不带0的字符串。给定的示例输入一个字符串a,并且应该返回结果字符串。您可以通过放置exit(a)而不是return a来验证函数是否返回结果b.append(a)

尝试打印递归函数r返回的结果时,它不返回任何内容。此外,尽管事实是我bb.append(a)填充了表格,但仍打印了一个空表。

丹尼尔·罗斯曼

您需要对return递归调用的值r

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python 中递归函数的返回值

来自分类Dev

Java中递归方法的停止和返回值

来自分类Dev

如何从python中的递归函数返回值?

来自分类Dev

递归-Python问题,返回值问题

来自分类Dev

在Python中返回值

来自分类Dev

如何在python中存储和比较返回值

来自分类Dev

递归的默认返回值

来自分类Dev

从递归返回值

来自分类Dev

从递归函数返回值

来自分类Dev

Python递归有趣的返回值

来自分类Dev

如何获取递归python函数以返回值?

来自分类Dev

如何从Scheme中的递归调用正确返回值?

来自分类Dev

如何通过Java中的递归返回值列表?

来自分类Dev

在递归循环函数php中返回值

来自分类Dev

VB脚本中的递归函数返回值

来自分类Dev

在递归函数PHP中返回值的问题

来自分类Dev

如何从Scheme中的递归调用正确返回值?

来自分类Dev

解释c ++中'int'类型的递归函数的返回值

来自分类Dev

如何在递归for循环函数中返回值?

来自分类Dev

python`with .. as ..`语句和多个返回值

来自分类Dev

从 Fetch 中编辑和返回值

来自分类Dev

从Python中的回调返回值

来自分类Dev

在python中打印函数的返回值?

来自分类Dev

从python中的修饰函数返回值

来自分类Dev

在Python for Loop中返回值

来自分类Dev

递归方法,仅从上次递归调用中返回值

来自分类Dev

如何终止递归函数并返回值

来自分类Dev

从异步递归函数返回值

来自分类Dev

递归函数的返回值为'undefined'