| Автор | Сообщение |
|
Отправлено: 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)
|
 |

|
|
Ответов - 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 ) )
|
 |

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

|
|
Отправлено: 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
|
 |

|
|