Как разбить строку на узлы списка? - PullRequest
0 голосов
/ 05 февраля 2020
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

Итак, вот мой код. Я добавил два числа, используя метод начальной школы, добавляя каждый ди git один за другим. Я использовал ввод как строку, она работает, но теперь мне нужно разделить ввод на узлы списка, а затем сделать то же самое. Не уверен, как это сделать. Я пытался

digitsPerNode=4

for i in range(len(str1)):
    list1=str1[:digitsPerNode]
    i+=digitsPerNode

, но это не работает. Может кто-то мне помочь, пожалуйста? (Я использую версию Pyhton 3.4)

1 Ответ

1 голос
/ 05 февраля 2020

если введено значение 123235, то list1 = ["3235", "12"]

Получение строки в инвертированных кусках максимум 4:

def chunkate(str_num, n=4):
    s = "".join(reversed(str_num))
    a = [s[i:i+n] for i in range(0, len(s), n)]
    return ["".join(list(reversed(k))) for k in a]

print(chunkate("123235"))
# prints: ['3235', '12']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...