Не могу найти ошибку. Python
Задание: Вам надо проверить, что 2 данные строки изометричны. Это значит что символ из одной строки может стать в соответствие символам из другой строки.
Один символ одной строки может соответствовать только одному символу другой строки. Два или более символа одной строки могут соответствовать одному символу другой строки, но не наоборот.
Мое решение:
def isometric_strings(str1: str, str2: str) -> bool:
val = True
cor = {}
a = 0
if str1[a] not in cor:
cor.update({str1[a]: str2[a]})
a += 1
elif cor[str1[a]] != str2[a]:
val = False
return val
Но isometric_strings('foo', 'bar') все равно возвращает True

Ответы (1 шт):
Я объясню, в чем проблема, но код писать не буду (неохота, кроме того, я не уверен, что тут правильный алгоритм). Проблема в том, что функция проверяет только первый символ строки str1, потому что в str1[a] значение a равно 0, а a += 1 не имеет практической пользы, т.к. в функции нет цикла и после однократного прохода через if-elif функция успешно завершается.
Для прохода по всем символам строки используй for s in str1 или while a < len(str1). Во втором случае в ветку elif тоже нужно добавить a += 1.