Напишите функцию, которая будет принимать две строки, состоящие из знаков «+» и «-», и возвращать строку — результат их взаимодействия.
Исходим из того, что строки, передаваемые в функцию, всегда будут равной длины.
Переданные строки взаимодействуют следующим образом:
- плюс и плюс дают плюс
- минус и минус дают минус
- плюс и минус нейтрализуют друг друга и вместе дают 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))