Чувствительность к регистру
Задачка на Codewars.
Check to see if a string has the same amount of 'x's and 'o's. The method must return a boolean and be case insensitive. The string can contain any char.
Проверьте, имеет ли строка одинаковое количество регистронезависимых символов. Строка может содержать любой символ.
Examples input/output:
XO("ooxx") => true
XO("xooxx") => false
XO("ooxXm") => true
XO("zpzpzpp") => true // when no 'x' and 'o' is present should return true
XO("zzoo") => false
мой код:
def xo(s):
z = s.count('x')
x = s.count('o')
if z == x:
return True
else:
return False
первые проверки проходит но когда начинает проверять на рандомные значения s, выдает ошибку: "Comparison is case-insensitive" (Сравнение не чувствительно к регистру). Но ведь условие было изначально, что именно регистронезависимые?! Это баг или я что-то неправильно сделал?!
Не могу теперь допенькать как в мой код добавить isupper или что-то вроде этого чтоб проверял на РеГиСтР.
Ответы (1 шт):
Автор решения: owoDAKowo
→ Ссылка
У строк есть метод lower() и upper() которая возвращает копию исходной строки с символами приведёнными к нижнему/верхнему регистру.
Соответственно следует добавить следующее и всё заработает.
z = s.lower().count('x')
x = s.lower().count('o')