鱼C论坛

 找回密码
 立即注册
查看: 5359|回复: 72

Python:每日一题 339

[复制链接]
发表于 2020-2-29 19:23:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
今天的题目:


给定两个仅含数字的字符串 a 和 b,返回一个由各位之和拼接成的字符串。   

示例 1:

输入:a = "99", b = "111"
输出:"11010"
解释:因为 9 + 1 = 10,9 + 1 = 10,0 + 1 = 1,连接之后的结果是 "11010"。
示例 2:

输入:a = "2",b = "321"
输出:"323"
解释:因为 1 + 2 = 3,2 + 0 = 2,3 + 0 = 3,连接之后的结果是 "323"。


欢迎大家一起答题!

评分

参与人数 1荣誉 +1 收起 理由
蒋博文 + 1 鱼C有你更精彩^_^

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-29 19:43:08 | 显示全部楼层
拼接是从右到左?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-29 19:45:18 | 显示全部楼层
本帖最后由 最后的魁拔 于 2020-2-29 19:47 编辑
a = list(input())
b = list(input())
if len(a)==len(b):
    c = max(len(a),len(b))
    pass

else:
    c = max(len(a),len(b))
    if len(a)>len(b):
        d = c-len(b)
        for i in range(0,d):
            b.insert(i,0)
    else:
        d = c - len(a)
        for i in range(0,d):
            a.insert(i,0)
str1=""
for i in range(0,c):
    str1 += str(int(a[i])+int(b[i]))
print(str1)

评分

参与人数 1荣誉 +5 鱼币 +5 收起 理由
zltzlt + 5 + 5

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-29 19:45:30 | 显示全部楼层

就是十位和十位上的数相加,个位和个位上的数相加,如果位上没有数,加的时候就用零来代替
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-29 19:47:21 | 显示全部楼层
本帖最后由 zltzlt 于 2020-2-29 19:54 编辑


不是,跟做加法类似
     9  9
+ 1  1  1
-----------
  1 10 10
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-29 19:51:35 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-29 19:53:44 | 显示全部楼层
a = input('a = ')
b = input('b = ')
c = ''
if len(a) == len(b):
    for i in range(len(a)):
        c += str(int(a[i]) + int(b[i]))
else:
    if len(a) > len(b):
        for i in range(len(a) - len(b)):
            b = '0' + b
        for i in range(len(a)):
            c += str(int(a[i]) + int(b[i]))
    else:
        for i in range(len(b) - len(a)):
            a = '0' + a
        for i in range(len(a)):
            c += str(int(a[i]) + int(b[i]))
print(c)
好像没问题...

评分

参与人数 1荣誉 +5 鱼币 +5 收起 理由
zltzlt + 5 + 5

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-29 19:55:03 | 显示全部楼层

38 ms
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-29 19:57:01 | 显示全部楼层

什么意思呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-29 19:57:41 | 显示全部楼层


测试用例运行时长 38 毫秒
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-29 19:58:34 | 显示全部楼层
def func(a, b):
    result = ''
    n1 = len(a)
    n2 = len(b)
    a = '0' * (n2 - n1) + a
    b = '0' * (n1 - n2) + b
    for x, y in zip(a, b):
        result += str(int(x) + int(y))
    return result

评分

参与人数 2荣誉 +10 鱼币 +10 收起 理由
ArmandXiao + 5 + 5 为何如此聪明,跟你的方法比起来 我感觉我.
zltzlt + 5 + 5

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-2-29 19:59:45 | 显示全部楼层
zltzlt 发表于 2020-2-29 19:57
测试用例运行时长 38 毫秒

明白了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-29 20:00:00 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-29 20:02:44 | 显示全部楼层
def _339(a, b):
    list1 = []
    list2 = []

    for i in a:
        list1.append(int(i))
    for i in b:
        list2.append(int(i))
    if len(b) > len(a):
        for i in range(len(b) - len(a)):
            list1.insert(0, 0)
    if len(a) > len(b):
        for i in range(len(a) - len(b)):
            list2.insert(0, 0)
    str1 = ""

    for i in zip(list1, list2):
        str1 = str1 + str(sum(i))
    return str1
请过目

评分

参与人数 1荣誉 +5 鱼币 +5 收起 理由
zltzlt + 5 + 5

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-29 20:03:23 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-29 20:18:13 | 显示全部楼层
def f339(a,b):
    def f(a,b):
        if not a or not b:
            return a+b
        else:
            return f(a[:-1],b[:-1])+str(int(a[-1])+int(b[-1]))
    return f(a,b)

评分

参与人数 1荣誉 +4 鱼币 +4 收起 理由
zltzlt + 4 + 4

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-29 20:21:34 | 显示全部楼层
a = input('第一个数字: ')
b = input('第二个数字: ')
a1 = len(a)
b1 = len(b)
if a1 < b1:
    a3 = b1 - a1
    a5 = len(b) - a3
    i = 1
    a4 = []
    while i <= a5:
        a2 = (int(a[-i]) + int(b[-i]))
        a4.append(str(a2))
        i += 1
    a6 = len(b) - len(a)
    i = 0
    while i < a6:
        a4.append((b[i]))
        i += 1
    a4 = sorted(a4)
    a7 = ''.join(a4)
    print(a7)

评分

参与人数 1荣誉 +2 鱼币 +2 收起 理由
zltzlt + 2 + 2

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-29 20:23:53 | 显示全部楼层

如果用递归则不能处理过大的数据
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-29 20:24:30 | 显示全部楼层

没有考虑 a1 >= b1 的情况
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-29 20:25:01 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-17 05:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表