Python中文
首页
教程
问答
标签
搜索
登录
注册
将迭代解转换为递归解
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我目前正在处理一个问题,需要我设计一个函数,该函数将“0”、“1”和“X”的字符串作为参数,并返回一个生成器,该生成器生成X的不同组合,并将其转换为1和0</p> <p>ie:通过“0XX1”,将返回一个生成->; 0001, 0101, 0011, 0111</p> <p>我已经迭代地解决了这个问题,但需要能够递归地解决它。解决这类问题的最佳方法是什么?在这样一个复杂的问题中(嗯,对我来说很复杂!),我如何识别基本情况和递归情况</p> <p>下面是我的迭代解决方案:</p> <pre><code>from typing import Generator def binary_strings(string: str) -> Generator[str, None, None]: listOfIndices = [] starterString = '' for index, char in enumerate(string): if char == 'X': starterString = starterString + '0' listOfIndices.append(index) else: starterString = starterString + char def stringGenerator(): #generates the different combos baseString = starterString moddedString = '' n = len(listOfIndices) counter = 1 for i, character in enumerate( starterString): if i == 0: yield starterString else: break while counter <= n: for i, chara in enumerate(baseString): if i in listOfIndices: moddedString = baseString[:i] + '1' + baseString[i + 1:] yield moddedString counter += 1 if counter > n and n >= 1: counter = 1 n -= 1 baseString = moddedString break else: continue return stringGenerator() </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>忽略(微不足道的)基本情况(即,没有X要替换的情况),<code>binary_strings(s)</code>=<code>binary_strings(s') + binary_strings(s'')</code>,其中<code>s'</code>是<code>s</code>,第一个X替换为0,而<code>s''</code>是<code>s</code>,第一个X替换为1</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何在python中从数据帧列中删除分类值?
4 回答
如何在python中从数据帧列表中删除引号
10 回答
如何在python中从数据帧创建列表
7 回答
如何在Python中从数据帧创建嵌套的JSON
9 回答
如何在Python中从数据帧显示wordcloud
8 回答
如何在Python中从数据帧的时间戳中删除字符
10 回答
如何在Python中从数据帧绘制简单绘图?
3 回答
如何在python中从数据帧行提取具有特定长度的范围?
7 回答
如何在python中从数据帧设置dict中的值
5 回答
如何在Python中从数据库中获得一个结果
7 回答
如何在python中从数据框中绘制分类条形图
2 回答
如何在Python中从数据框中选择特定细节?
4 回答
如何在python中从数据集中删除unicode
8 回答
如何在python中从数据集中删除某些数值?
10 回答
如何在python中从数据集中选择行
4 回答
如何在Python中从数组中删除元素
3 回答
如何在python中从数组中删除单个倒逗号?
10 回答
如何在python中从数组中删除对象?
3 回答
如何在python中从数组中删除引号
2 回答
如何在python中从数组中删除所有最小值
7 回答