鱼C论坛

 找回密码
 立即注册
查看: 7089|回复: 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有你更精彩^_^

查看全部评分

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-29 19:43:08 | 显示全部楼层
拼接是从右到左?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

  6. else:
  7.     c = max(len(a),len(b))
  8.     if len(a)>len(b):
  9.         d = c-len(b)
  10.         for i in range(0,d):
  11.             b.insert(i,0)
  12.     else:
  13.         d = c - len(a)
  14.         for i in range(0,d):
  15.             a.insert(i,0)
  16. str1=""
  17. for i in range(0,c):
  18.     str1 += str(int(a[i])+int(b[i]))
  19. print(str1)
复制代码

评分

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

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

就是十位和十位上的数相加,个位和个位上的数相加,如果位上没有数,加的时候就用零来代替
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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


不是,跟做加法类似

  1.      9  9
  2. + 1  1  1
  3. -----------
  4.   1 10 10
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-29 19:51:35 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-29 19:53:44 | 显示全部楼层
  1. a = input('a = ')
  2. b = input('b = ')
  3. c = ''
  4. if len(a) == len(b):
  5.     for i in range(len(a)):
  6.         c += str(int(a[i]) + int(b[i]))
  7. else:
  8.     if len(a) > len(b):
  9.         for i in range(len(a) - len(b)):
  10.             b = '0' + b
  11.         for i in range(len(a)):
  12.             c += str(int(a[i]) + int(b[i]))
  13.     else:
  14.         for i in range(len(b) - len(a)):
  15.             a = '0' + a
  16.         for i in range(len(a)):
  17.             c += str(int(a[i]) + int(b[i]))
  18. print(c)
复制代码

好像没问题...

评分

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

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

38 ms
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

什么意思呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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


测试用例运行时长 38 毫秒
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-29 19:58:34 | 显示全部楼层
  1. def func(a, b):
  2.     result = ''
  3.     n1 = len(a)
  4.     n2 = len(b)
  5.     a = '0' * (n2 - n1) + a
  6.     b = '0' * (n1 - n2) + b
  7.     for x, y in zip(a, b):
  8.         result += str(int(x) + int(y))
  9.     return result
复制代码

评分

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

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

明白了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-29 20:00:00 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

  4.     for i in a:
  5.         list1.append(int(i))
  6.     for i in b:
  7.         list2.append(int(i))
  8.     if len(b) > len(a):
  9.         for i in range(len(b) - len(a)):
  10.             list1.insert(0, 0)
  11.     if len(a) > len(b):
  12.         for i in range(len(a) - len(b)):
  13.             list2.insert(0, 0)
  14.     str1 = ""

  15.     for i in zip(list1, list2):
  16.         str1 = str1 + str(sum(i))
  17.     return str1
复制代码

请过目

评分

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

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-29 20:03:23 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-29 20:18:13 | 显示全部楼层
  1. def f339(a,b):
  2.     def f(a,b):
  3.         if not a or not b:
  4.             return a+b
  5.         else:
  6.             return f(a[:-1],b[:-1])+str(int(a[-1])+int(b[-1]))
  7.     return f(a,b)
复制代码

评分

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

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-29 20:21:34 | 显示全部楼层
  1. a = input('第一个数字: ')
  2. b = input('第二个数字: ')
  3. a1 = len(a)
  4. b1 = len(b)
  5. if a1 < b1:
  6.     a3 = b1 - a1
  7.     a5 = len(b) - a3
  8.     i = 1
  9.     a4 = []
  10.     while i <= a5:
  11.         a2 = (int(a[-i]) + int(b[-i]))
  12.         a4.append(str(a2))
  13.         i += 1
  14.     a6 = len(b) - len(a)
  15.     i = 0
  16.     while i < a6:
  17.         a4.append((b[i]))
  18.         i += 1
  19.     a4 = sorted(a4)
  20.     a7 = ''.join(a4)
  21.     print(a7)

复制代码

评分

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

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

如果用递归则不能处理过大的数据
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

没有考虑 a1 >= b1 的情况
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-29 20:25:01 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-30 16:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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