【力扣题库】两数相加

【力扣题库】两数相加

文章目录

  • 【力扣题库】两数相加
    • 题目:
    • 示例:
    • 解答:
      • Python:
      • 运行结果:

题目:

给出两个非空的链表来表示两个非负的整数。其中,他们各自的位数是按照逆序的方式存储的,并且他们的每个节点只能存储一个数字。

如果,我们将这两个数相加,则会返回一个新的链表来表示他们的和。

您可以假设除了数字0之外,这两个数字多不会以0开头。

示例:

输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
输出:7 -> 0 -> 8
原因:342 + 465 = 807

解答:

  • Python:

    • 将字符串转换为列表,通过列表的 reverse () 方法,改变列表顺序,再将列表转换为整数相加,重新将整数转换为字符串(程序运行的时间消耗平均为 42.4ms
    shu_ru = "(2->4->3) + (5->6->4)"
    shu_ru = shu_ru.split("+")    # 将字符串转换为列表
    right = list(    # 列表化字符串
        (
            (
                (
                    (
                        str(shu_ru[1])    # 将列表传化为字符串
                     ).replace("->","")    # 去掉字符串中的 "->"
                ).replace("(","")    # 去掉字符串中的 "("
            ).replace(")","")    # 去掉字符串中的 ")"
        ).replace(" ","")    # 去掉字符串中的 " "
    )
    left = list(    # 列表化字符串
        (
            (
                (
                    (
                        str(shu_ru[0])    # 将列表传化为字符串
                    ).replace("->","")    # 去掉字符串中的 "->"
                ).replace("(","")    # 去掉字符串中的 "("
            ).replace(")","")    # 去掉字符串中的 ")"
        ).replace(" ","")    # 去掉字符串中的 " "
    )
    left.reverse()    # 进行列表反转
    right.reverse()    # 进行列表反转
    right = int("".join(right))    # 将列表转化为字符串后在转化为整数
    left = int("".join(left))    # 将列表转化为字符串后在转化为整数
    end = list(str(left+right))    # 计算出答案后,将答案重新转化为列表
    end.reverse()    # 将答案进行列表反转
    print(" -> ".join(end))    # 列表转化为字符串
    
  • 运行结果:

    D:***\python3.exe D:***/0002-两数相加.py
    7 -> 0 -> 8
    
    进程完成,退出码 0
    

你可能感兴趣的:(力扣题库)