Найти количество звездочек между двумя столбцами в строке - Python - PullRequest
2 голосов
/ 11 июня 2019

Мне дали строку S='&|&&|&&&|&', где мы должны получить количество звездочек между двумя столбцами в данной строке.Выходные данные должны быть 5. И вот мой код:

Lis=[x for x in range(len(S)) if S[x]=='|']
min_idx=Lis[0]
max_idx=Lis[-1]
count_of_stars=S[min_idx:max_idx].count('&')

Проблема, с которой я столкнулся, заключалась в том, что мой код получал тайм-аут для больших входов в платформе кодирования.Может кто-нибудь предложить лучший способ уменьшить сложность времени здесь?

Ответы [ 2 ]

3 голосов
/ 11 июня 2019

Попробуйте раздеться и сосчитать:

S='&|&&|&&&|&'

print(S.strip('&').count('&'))
3 голосов
/ 11 июня 2019

Вы можете использовать следующее регулярное выражение с заголовками, чтобы сопоставлять & только между столбцами:

import re
S = '&|&&|&&&|&' 

len(''.join(re.findall(r'(?<=\|)(\&+)(?=\|)', S)))
# 5

Где:

re.findall(r'(?<=\|)(\&+)(?=\|)', S)
# ['&&', '&&&']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...