На этом форуме отвечают на конкретные вопросы. Фраза «я не понимаю, как решать» — это не вопрос. На вопрос «как решить задачу №X» вас отошлют к материалам сайта kpolyakov.spb.ru. За бессвязный поток слов и неспособность формулировать свои мысли — бан.

Если у вас не сходится ответ на какую-то задачу, пожалуйста сразу представляйте свое «правильное» решение.
Программы "заворачивайте" в тэг [pre2]...[/pre2], при этом сохраняются все отступы и применяется моноширинный шрифт. Если у вас используется сочетание "[i]" для обозначения элемента массива или строки, ставьте пробел после открывающей скобки. Иначе система выделит все дальнейшее курсивом.

Для регистрации на форуме щелкните по ссылке «Вход-регистрация» вверху страницы. В открывшееся окошко «ник» введите свою фамилию на русском языке (например, Иванов). В окошко «пароль» введите придуманный вами пароль, состоящий из латинских букв и цифр. Поставьте галочку в окошке «зарегистрироваться, я новый участник» и нажмите кнопку «ОК».

АвторСообщение





Сообщение: 20
ссылка на сообщение  Отправлено: 05.04.26 12:29. Заголовок: 8948 - не сходится ответ


Подскажите, пожалуйста, почему может не сходиться ответ. Вместо 17 получается 19
 
fin=open("24-378.txt")
st=fin.readline()
for x in 'ABCDEF':
st=st.replace(x,"_")
dd=st.split('_')
rr=[]
for i in range(len(dd)-1):
pp=dd[i:i+2]
ok=0
ppt=''.join(pp)
for x in '1234567890':
if x in ppt: ok+=1
if ok==10:
#print(pp)
rr.append(ppt)
#print(rr)
dl=[len(x) for x in rr]
#print(dl)
print(min(dl)+3)


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 3 [только новые]


Администратор




Сообщение: 4348
ссылка на сообщение  Отправлено: 06.04.26 11:11. Заголовок: from string import ..


 
from string import ascii_uppercase, digits

s = open('24-378.txt').read().strip()

A = ascii_uppercase[:ascii_uppercase.index('F')+1]
A_COUNT = 3

def valid( s ):
return sum( 1 for c in s if c in A ) == A_COUNT and \
all( c in s for c in digits )

N = len(s)
curLen = 0
minLen = float('inf')
letters = set()

for L in range(0, N):
Rmax = min(L+minLen,N+1)
for R in range(L+1,Rmax):
sub = s[L:R]
curLen = R - L
if sum( 1 for c in sub if c in A ) > A_COUNT:
break
if valid(sub):
if curLen < minLen:
minLen = curLen
sMin = sub
print( curLen, sub )
break

print( minLen, sMin )
print( sum( 1 for c in sMin if c in A ) )
print( all( c in sMin for c in digits ) )



___________________________________________________
Имей мужество пользоваться собственным умом. (И. Кант)
Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 23
ссылка на сообщение  Отправлено: 06.04.26 18:12. Заголовок: Спасибо)..


Спасибо)

Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 24
ссылка на сообщение  Отправлено: 11.04.26 21:43. Заголовок: Еще один вариант реш..


Еще один вариант решения.
 
d=open("24-378.txt").readline()
for x in 'ABCDEF': d=d.replace(x,"_")
mi=10000; mit=''
while True:
pp=[]
for x in '1234567890':
n=d.find(x)
if n>=0: pp.append(n)
alf=[]
for i in range(len(d)):
if d=='_': alf.append(i)
if len(alf)==3: break
b=min(pp+alf); e=max(pp+alf)
dl=e-b+1
if dl<mi:
mi=dl; mit=d[b:e+1]
print(mi,mit)
d=d[b+1:]
if len(pp)+len(alf)<13: break


Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 86
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет