Если у нас есть строка буквенных символов и несколько штрихов, и мы хотим подсчитать количество штрихов между любыми двумя буквенными символами в этой строке. какой самый простой способ сделать это?
Пример:
Входные данные: a--bc---d-k
вывод: 2031
Это означает, что есть 2 черты между a и b, 0 - между b и c, 3 - между c и d и 1 - между d и k
Что такое хороший способ найти этот список вывода в Python?
a-b-c
иa-----------b
должно стать одинаковым выходом11
?Ответы:
Решение с регулярным выражением:
вывод:
Решение с помощью логики петли грубой силы:
вывод:
источник
f
перед шаблоном это опечатка? Вам не нужно создавать необработанную строку без обратной косой черты. Также нет необходимости в захвате группы =). Хороший ответ черезf
, спасибо. Я использовал f-string, но я отбросил эту часть, пока улучшал ответ, но забыл удалитьf
. Я обновил свой ответ. Не нужно захватывать группу тоже правильно :)count
добавляется толькоresults
приc != '-'
обнаружении. Еслиx
заканчивается-
, последнийcount
будет игнорироваться.Вы можете использовать очень простое решение, подобное этому:
Вывод:
'2031'
источник
Если ваш ввод может также начинаться с тире, вы можете использовать это:
Но если ваш ввод всегда начинается с буквы, вам может не понравиться 0, который всегда стоит в начале списка.
Если вам нужен вывод в виде строки целых, то вы можете добавить это:
источник
Вот простой подход цикла:
источник