You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将迭代实现的DNA序列转译函数改写为递归实现?

DNA转译函数递归改写方案

我们可以把整个序列转译的大问题拆解为「单个字符转译 + 剩余子序列转译」的小问题,通过递归实现需求,具体逻辑和代码如下:

  • 递归终止条件:当输入的序列为空时,直接返回空字符串,结束递归调用
  • 递归逻辑:每次取当前序列的第一个字符完成映射转译,再拼接上剩余子序列的递归转译结果即可
  • 优化点:把映射字典设置为函数默认参数,避免每次递归调用重复创建字典,减少不必要的性能开销

改写后的递归代码:

def dna(seq, hashtable={'A': 'U', 'G': 'C', 'T': 'A', 'C': 'G'}):
    # 递归出口:序列为空时返回空字符串
    if not seq:
        return ""
    # 处理首字符后递归处理剩余子序列
    return hashtable[seq[0]] + dna(seq[1:])

print(dna('AGCTGACGTA'))

运行上述代码输出结果和原迭代版本完全一致,均为UCAGCUGCAU。

内容的提问来源于stack exchange,提问作者flarezel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 15:06:03