Нейтрализация

Напишите функцию, которая будет принимать две строки, состоящие из знаков «+» и «-», и возвращать строку — результат их взаимодействия.

Исходим из того, что строки, передаваемые в функцию, всегда будут равной длины.

Переданные строки взаимодействуют следующим образом:

  • плюс и плюс дают плюс
  • минус и минус дают минус
  • плюс и минус нейтрализуют друг друга и вместе дают 0.

Разбор примера

 neutralise("+-+", "+--") ➞ "+-0"
 # Сравниваем первые символы двух строк, потом следующие два символа и т.д.
 # "+" и "+" возвращают "+".
 # "-" и "-" возвращают "-".
 # "+" и "-" возвращают "0".
 # Возвращаем строку символов. 

Другие примеры

 neutralise("--++--", "++--++") ➞ "000000"
 neutralise("-+-+-+", "-+-+-+") ➞ "-+-+-+"
 neutralise("-++-", "-+-+") ➞ "-+00" 

Варианты решения

def neutralise(s1, s2):
    return ''.join(a if a == b else '0' for a, b in zip(s1, s2))
def neutralise(s1, s2):
    ans = ''
    for i in range(len(s1)):
        if s1[i] == s2[i]:
            ans += s1[i]
        else:
            ans += '0'
    return ans
neutralise=lambda a,b:"".join(["0",x][x==y]for x,y in zip(a,b))
python books logo

Хотите решать больше задач по Python

Подписывайтесь на нас в Телеграм

×