【发布时间】:2026-02-08 22:25:01
【问题描述】:
def add(num1,num2):
str1 = str(num1)
str2 = str(num2)
size1 = len(str1)
size2 = len(str2)
carry = 0
swap = 0
total = []
if (size1>size2):
temp = str1
str1 = str2
str2 = temp
temp = size1
size1 = size2
size2 = temp
swap = 1
str1 = str1[::-1]
str2 = str2[::-1]
for i in range(size1):
t=int(str1[i])+int(str2[i])+carry
if (t>9):
total.append(t%10)
carry=1
else:
total.append(t)
carry=0
for i in range(size1,size2):
t=int(str2[i])+carry
if (t>9):
total.append(t%10)
carry=1
else:
total.append(t)
carry=0
if (carry):
total.insert(size2,1)
str1 = str1[::-1]
str2 = str2[::-1]
total = total[::-1]
if (swap==1):
temp = str1
str1 = str2
str2 = temp
strTotal = "".join(map(str,total))
return strTotal
所以,这是我的代码。我使用小学方法通过一个一个地添加每个数字来添加两个数字。我将输入用作字符串,它可以工作,但现在我需要将输入拆分为列表节点,然后做同样的事情。不知道该怎么做。我试过了
digitsPerNode=4
for i in range(len(str1)):
list1=str1[:digitsPerNode]
i+=digitsPerNode
但它不起作用。有人能帮助我吗? (我用的是python 3.4版本)
【问题讨论】:
-
您想按长度分割字符串吗?就像你有“aaabbbccc”,你想要
["aaa","bbb","ccc"]? -
"将输入拆分为列表节点" - 给出一个示例输入以及列表节点的外观
-
@geckos 是的,将数字拆分为节点,并逐个添加每个节点
-
如果你想做@geckos所说的:
nodes = zip(*(iter(str1),) * digitsPerNode) -
你可以通过这个
def split_n(s, n): return [s[i:i+n] for i in range(0, len(s), n)]按len分割
标签: python python-3.x nodes