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

求助:实现符合互补序列规则的字符模式生成函数

求助:实现符合互补序列规则的字符模式生成函数

看起来你现在的代码逻辑没抓住题目里的核心规则哦!题目里的模式是每次把当前已有的模式取互补(也就是把char1换成char2,char2换成char1),然后拼到原模式的后面,而不是简单重复char2再加char1。咱们来一步步修正这个问题:

先明确规则对应的实际生成逻辑:

  • n=0: 初始模式是 char1(比如示例里的A)
  • n=1: 原模式 + 原模式的互补序列 → A + R = AR
  • n=2: 原模式(AR) + 原模式的互补序列(RA) → ARRA
  • n=3: 原模式(ARRA) + 原模式的互补序列(RAAR) → ARRARAAR
  • 以此类推,每一步生成的模式长度都是前一步的2倍,最终n对应的模式长度是2ⁿ。

下面是符合规则的代码实现:

def get_complement(s, char1, char2):
    # 生成当前字符串的互补序列:char1和char2互换
    complement_chars = []
    for c in s:
        complement_chars.append(char2 if c == char1 else char1)
    return ''.join(complement_chars)

def generate_pattern(char1, char2, n):
    current_pattern = char1
    # 从n=1开始,循环n次构建模式
    for _ in range(n):
        complement = get_complement(current_pattern, char1, char2)
        current_pattern += complement
    return current_pattern

def main():
    char1 = input("Enter character 1: ")
    char2 = input("Enter character 2: ")
    n = int(input("Enter the value of n: "))
    
    result = generate_pattern(char1, char2, n)
    print("The obtained pattern:", result)

if __name__ == "__main__":
    main()

测试验证

  • 示例1输入:A、R、2 → 输出ARRA,和题目要求一致。
  • 示例2输入:U、W、4 → 输出UWWUWUUWWUUWUWWU,完全匹配题目给出的结果。

代码关键点说明

  • get_complement函数专门处理互补序列的生成,逻辑清晰且复用性强。
  • 主循环执行n次,因为从初始的n=0到目标n,需要进行n次“原模式+互补模式”的拼接操作。
  • 每次都是基于完整的前序模式生成互补,严格遵循题目里的递推规则。

备注:内容来源于stack exchange,提问作者FAUZIAH ROZY

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 11:03:00