Дана некоторая строка. Найдите позицию третьего нуля в строке
Есть вопрос по задаче. Нужно найти позицию третьего нуля в строке. Сам ничего не придумал, в интернете тоже ничего не нашёл. Вот пример кода для поиска первого нуля в строке
def find_zero(s):
for index, char in enumerate(s):
if char == '0':
return index
return "Нулей нет"
print(find_zero("abc0def"))
print(find_zero("abcdef"))
Подскажите на его основе как написать код для позиции третьего нуля.
Ответы (3 шт):
Автор решения: andr124
→ Ссылка
def find_zero(s):
c = 0
for index, char in enumerate(s):
if char == '0':
c += 1
if c == 3:
return index
return "Нулей нет"
print(find_zero("abc0def"))
print(find_zero("abcdef"))
print(find_zero("ab00cd0ef"))
Нулей нет
Нулей нет
6
Автор решения: GravyTalk
→ Ссылка
Достаточно разделить строку на символы и искать символы соответствующие нулю, а затем считать количество встретившихся нулей.
def position_3_zero(str):
count = 0
for index, symbol in enumerate(str.strip()):
if symbol == '0':
count += 1
if count == 3:
pos = index
return pos
if __name__ == "__main__":
str_list = ["abcj0ajf0ajb0",
"jddi0wejfn00",
"000aknfakfn",
"aknfa000ajfnajfn"]
for str in str_list:
pos = position_3_zero(str)
print(pos)
12 11 2 7
Автор решения: Andrei Sh
→ Ссылка
Решение в одну строку:
vvar = input("Введите строку: ")
print("Позиция третьего нуля в строке: %s" % [index for index, value in
enumerate(vvar) if value == "0"][2:3] if len([index for index, value in
enumerate(vvar) if value == "0"]) >= 3 else "Нет трёх нулей!")