Python中文
首页
教程
问答
标签
搜索
登录
注册
字符串操纵递归函数
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>正在努力实现一个递归转换函数,该函数将从字符串中删除连续的重复字母。。。在</p> <p>例如<code>"abbabcc" => "aabcc"</code>(第一次通过时,删除<code>"bb"</code>)</p> <p>例如<code>"aabcc" => "bcc"</code>(第二遍时,删除<code>"aa"</code>)</p> <p>然后递归地调用它自己,直到最后的归约是<code>"abbabcc" => "b"</code></p> <pre><code>def transformations(J): if len(J) == 1: return J front_part = "" back_part = "" if J[0] == J[1]: back_part += J[2:] return transformations(back_part) else: front_part += J[0] back_part += J[1:] return front_part + transformations(back_part) assert transformations("ab") == "ab" assert transformations("aba") == "aba" assert transformations("abc") == "abc" assert transformations("aabbbccaaba") == "a" assert transformations("abba") == "" # "abba" should return "aa" on first pass then return empty string # on second pass, but right now it returns "aa" and stops there </code></pre> <p>现在,上面的算法适用于大多数输入,除了中间有双连续字符的输入,在删除第一个连续字符后会产生另一个双连续字符,例如<code>("abba")</code></p> <p>我需要一个基址,如果这种情况可以解释这一点,但我找不出一个,我的算法有什么问题吗?在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>密码的出现,对吧?:-)怎么样</p> <pre><code>while True: backup = input for letter in string.ascii_lowercase: input = input.replace(letter * 2, '') if backup == input: break </code></pre> <p>是吗?在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何在python中从数据帧列中删除分类值?
4 回答
如何在python中从数据帧列表中删除引号
3 回答
如何在python中从数据帧创建列表
9 回答
如何在Python中从数据帧创建嵌套的JSON
2 回答
如何在Python中从数据帧显示wordcloud
10 回答
如何在Python中从数据帧的时间戳中删除字符
10 回答
如何在Python中从数据帧绘制简单绘图?
3 回答
如何在python中从数据帧行提取具有特定长度的范围?
1 回答
如何在python中从数据帧设置dict中的值
8 回答
如何在Python中从数据库中获得一个结果
5 回答
如何在python中从数据框中绘制分类条形图
2 回答
如何在Python中从数据框中选择特定细节?
4 回答
如何在python中从数据集中删除unicode
9 回答
如何在python中从数据集中删除某些数值?
4 回答
如何在python中从数据集中选择行
1 回答
如何在Python中从数组中删除元素
8 回答
如何在python中从数组中删除单个倒逗号?
4 回答
如何在python中从数组中删除对象?
3 回答
如何在python中从数组中删除引号
4 回答
如何在python中从数组中删除所有最小值
6 回答