🐍🧩 5 Π·Π°Π΄Π°Ρ‡ с Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ Π½Π° Python для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²

Освоили Π±Π°Π·Ρƒ ΠΈ Ρ€ΡƒΠΊΠΈ Ρ‡Π΅ΡˆΡƒΡ‚ΡΡ ΠΈΡΠΏΡ‹Ρ‚Π°Ρ‚ΡŒ свои знания Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅? Π›ΠΎΠ²ΠΈΡ‚Π΅ ΠΏΡΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Π΅ΠΊ Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ своих Π·Π½Π°Π½ΠΈΠΉ: пишСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ для ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° NRZI ΠΊΠΎΠ΄Π° Π² Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ, ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅ΠΌ лишниС символы Π² строкС, опрСдСляСм Β«ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΏΠ°Π»ΠΈΠ½Π΄Ρ€ΠΎΠΌΒ», создаСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ для Π·Π°ΠΌΠ΅Π½Ρ‹ чисСл Π½Π° слова ΠΈ Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ Π»ΡƒΡ‡ΡˆΡƒΡŽ ΠΏΠΎΠΊΠ΅Ρ€Π½ΡƒΡŽ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ.
🐍🧩 5 Π·Π°Π΄Π°Ρ‡ с Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ Π½Π° Python для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²

1. Π›ΠΈΡˆΠ½ΠΈΠΉ символ

Π‘Π΅Π·ΡƒΠΌΠ½Ρ‹ΠΉ ΡƒΡ‡Π΅Π½Ρ‹ΠΉ нашСл способ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ сообщСния Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅. Π•ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ β€” ΠΈΠ½ΠΎΠ³Π΄Π° символы Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ сообщСнии ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡˆΠΈΠ²Π°ΡŽΡ‚ΡΡ, ΠΈ всСгда добавляСтся Ρ€ΠΎΠ²Π½ΠΎ ΠΎΠ΄ΠΈΠ½ лишний символ. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π²Π΅ строки β€” исходноС ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ сообщСниС ΠΈ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½Π½ΠΎΠ΅ доставлСнноС, β€” ΠΈ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ лишний символ.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π²Π²ΠΎΠ΄Π°:

Π‘Ρ‚Ρ€ΠΎΠΊΠ° А β€” исходноС сообщСниС.

Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π‘ β€” доставлСнноС сообщСниС.

        #ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Π²ΠΎΠ΄Π°:
スーパーハカー
スーパーハッカー

    

Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π²Ρ‹Π²ΠΎΠ΄Π°:

Π›ΠΈΡˆΠ½ΠΈΠΉ символ Π² доставлСнном сообщСнии.

        #ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π²ΠΎΠ΄Π°:
ッ

    

РСшСниС

Бпособ 1:

        a, b = input(), input() 
for character in a: 
	b = b.replace(character, '', 1) 
print(b) 

    

Бпособ 2:

        x = input() + input() 
for i in x: 
	if x.count(i) % 2 != 0: 
	print(i) 
	break 

    

Бпособ 3:

        lst1, lst2 = list(input()), list(input()) 
for el1 in lst1: 
	if el1 in lst2: 
		lst2.remove(el1) 
print(*lst2) 

    
Π‘ΠΎΠ»ΡŒΡˆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π½Π° нашСм Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ-ΠΊΠ°Π½Π°Π»Π΅ Β«Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° питониста»

2. Ѐункция PythonGeek

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ pythongeek(), которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π²Π° цСлочислСнных Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° a ΠΈ b (ΠΏΡ€ΠΈ этом a ≀ b), ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ строку, ΡΠΎΡΡ‚Π°Π²Π»Π΅Π½Π½ΡƒΡŽ ΠΈΠ· чисСл ΠΎΡ‚ a Π΄ΠΎ b Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈ слов Python, Geek ΠΈ PythonGeek ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ:

  • Ссли число дСлится Π±Π΅Π· остатка Π½Π° 3, Ρ‚ΠΎ вмСсто Π½Π΅Π³ΠΎ Π² строку добавляСтся слово Python;
  • Ссли число дСлится Π±Π΅Π· остатка Π½Π° 7, Ρ‚ΠΎ вмСсто Π½Π΅Π³ΠΎ Π² строку добавляСтся слово Geek;
  • Ссли число дСлится Π±Π΅Π· остатка ΠΈ Π½Π° 3, ΠΈ Π½Π° 7, Ρ‚ΠΎ вмСсто Π½Π΅Π³ΠΎ Π² строку добавляСтся слово PythonGeek;
  • Π² ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… случаях Π² строку добавляСтся само число;
  • числа ΠΈ слова Π² Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ строкС Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

        print(pythongeek(14, 21))
    

ВозвращаСмая строка:

        Geek Python 16 17 Python 19 20 PythonGeek
    

РСшСниС

Π—Π°Π΄Π°Ρ‡Π° каТСтся простой Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° возвращСния значСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ β€” Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ строку с распакованными значСниями (Π½Π΅ элСмСнты списка).

Бпособ 1:

        def pythongeek(a, b):
    sp = [i for i in range(a, b + 1)]
    for i, j in enumerate(sp):
        if j % 3 == 0 and j % 7 == 0:
            sp[i] = 'PythonGeek'            
        elif j % 3 == 0:
            sp[i] = 'Python'
        elif j % 7 == 0:
            sp[i] = 'Geek'
        else:
            sp[i] = str(j)
    return ' '.join(sp)

    

Бпособ 2:

        def pythongeek(a, b): 
    return ' '.join(('Python' * (i % 3 == 0) + 'Geek' * (i % 7 == 0) or str(i)) for i in range(a, b + 1)) 

    

Бпособ 3:

        def pythongeek(a,b):
    answer = list(map(lambda n: 'PythonGeek' if(n % 3 == 0 and n % 7 == 0) else ('Python' if n % 3 == 0 else ('Geek' if n % 7 == 0 else str(n))), list(range(a, b + 1)))) 
    return " ".join(answer) 

    

3. NRZI ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

NRZI (Non Return to Zero Invertive) β€” ΠΎΠ΄ΠΈΠ½ ΠΈΠ· способов Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ кодирования. Если имССтся Π½Π΅ΠΊΠΎΠ΅ устройство, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ способно Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ лишь Π² Π΄Π²ΡƒΡ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… состояниях, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡƒ состояний устройства Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ‚Π°ΠΊΡ‚Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… 1 ΠΈ 0. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ для ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° NRZI ΠΊΠΎΠ΄Π° Π² Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ: ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ состояния устройства Π² этом случаС обозначаСтся Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΉ Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅ΠΉ 1, Π° Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠ΅ состояниС принимаСтся Π·Π° 0.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π²Π²ΠΎΠ΄Π°:

Π‘Ρ‚Ρ€ΠΎΠΊΠ° NRZI ΠΊΠΎΠ΄Π°, состоящая ΠΈΠ· символов _, β€Ύ ΠΈ |.

        #ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Π²ΠΎΠ΄Π°:
_|Β―|____|Β―|__|Β―Β―Β―

    

Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π²Ρ‹Π²ΠΎΠ΄Π°:

Π”Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄.

        #ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π²ΠΎΠ΄Π°:
011000110100

    

РСшСниС

Бпособ 1:

        code = ' ' + input()
for i in range(1, len(code)):
    if code[i] != '|':
        print(int(code[i - 1] == '|'), end='')

    

Бпособ 2:

        print(input().replace("|Β―", "1").replace("|_", "1").replace("_", "0").replace("Β―", "0"))
    

Бпособ 3:

        code = input().split('|')
res = '0'
for i in code:
    res += '0' * (len(i) - 1) + '1'
print((res[1:-1], res[:-1])[bool(code[0])])

    

4. ΠŸΠΎΡ‡Ρ‚ΠΈ ΠΏΠ°Π»ΠΈΠ½Π΄Ρ€ΠΎΠΌ

Π‘Ρ‚Ρ€ΠΎΠΊΠ° тСкста, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π² ΠΏΠ°Π»ΠΈΠ½Π΄Ρ€ΠΎΠΌ послС удалСния ΠΎΠ΄Π½ΠΎΠΉ Π±ΡƒΠΊΠ²Ρ‹, называСтся Β«ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΏΠ°Π»ΠΈΠ½Π΄Ρ€ΠΎΠΌΠΎΠΌΒ». ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π° Π²Ρ…ΠΎΠ΄ строку, ΡΠΎΡΡ‚ΠΎΡΡ‰ΡƒΡŽ ΠΈΠ· Π±ΡƒΠΊΠ², Ρ†ΠΈΡ„Ρ€ ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… символов, ΠΈ опрСдСляСт, ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ строку Π² ΠΏΠ°Π»ΠΈΠ½Π΄Ρ€ΠΎΠΌ, ΡƒΠ΄Π°Π»ΠΈΠ² ΠΎΠ΄Π½Ρƒ ΠΈΠ· Π±ΡƒΠΊΠ². Π’ строкС Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ Π΅ΡΡ‚ΡŒ хотя Π±Ρ‹ Π΄Π²Π΅ Π±ΡƒΠΊΠ²Ρ‹.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π²Π²ΠΎΠ΄Π°:

Π‘Ρ‚Ρ€ΠΎΠΊΠ°, состоящая ΠΈΠ· Π±ΡƒΠΊΠ², Ρ†ΠΈΡ„Ρ€ ΠΈ символов.

        #ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Π²ΠΎΠ΄Π°:
*#14&*@(a)!(@14112)!@$)!@*$!*a)$*099

    

Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π²Ρ‹Π²ΠΎΠ΄Π°:

True, Ссли строка являСтся ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΏΠ°Π»ΠΈΠ½Π΄Ρ€ΠΎΠΌΠΎΠΌ, ΠΈΠ»ΠΈ False – Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС.

        #ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π²ΠΎΠ΄Π°:
True

    

РСшСниС

Алгоритмы, основанныС Π½Π° срСзах строк ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ Π½Π° ΠΏΠ°Π»ΠΈΠ½Π΄Ρ€ΠΎΠΌΠ½ΠΎΡΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ any (ΠΈΠ»ΠΈ [::-1]), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту Π·Π°Π΄Π°Ρ‡Ρƒ Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ Π² ΠΏΠ°Ρ€Ρƒ строк. Но Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ слишком ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π½Π΅ проходят тСсты Π½Π° Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π»ΠΈΠΌΠΈΡ‚Ρ‹.

Бпособ 1:

        s = ''.join([i for i in input() if i.isalpha()])
i, j, c = 0, -1, 0
for i in range(len(s)//2):
    if s[i] != s[j]:
        c += 1
    i += 1
    j += -1
print('True' if c == 1 or c == 0 or len(s) <= 2 or s[:-1] == s[:-1][::-1] else 'False')

    

Бпособ 2:

        def isAlmostPalindrome(s):
    for i in range(len(s) // 2):
        if s[i] != s[-1 - i] and s[i + 1] != s[-i - 1] and s[i] != s[-i - 2]:
            return False
    return True
s = ''.join(filter(str.isalpha, input()))
print(isAlmostPalindrome(s))

    

Бпособ 3:

        s = [elem for elem in input() if elem.isalpha()]
mistake = 0
for i in range(len(s)-1):
    if mistake > 1:
        break
    if s[i] != s[-i-1]:
        if s[i] == s[-i-2]:
            s.pop(-i-1)
        else:
            s.pop(i)
        mistake += 1
print(mistake <= 1)

    

5. Π›ΡƒΡ‡ΡˆΠ°Ρ комбинация

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π° Π²Ρ…ΠΎΠ΄ строку ΠΈΠ· 5 чисСл ΠΎΡ‚ 1 Π΄ΠΎ 13, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… собой Π½ΠΎΠΌΠ΅Ρ€Π° ΠΊΠ°Ρ€Ρ‚, ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π»ΡƒΡ‡ΡˆΠ΅ΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ· этих ΠΊΠ°Ρ€Ρ‚ ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ. Π’Π°Π»Π΅Ρ‚Ρ‹, Π΄Π°ΠΌΡ‹, ΠΊΠΎΡ€ΠΎΠ»ΠΈ ΠΈ Ρ‚ΡƒΠ·Ρ‹ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ΡΡ числами 11, 12, 13 ΠΈ 1 соотвСтствСнно.

Π’Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ названия ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ Π² ΠΏΠΎΠΊΠ΅Ρ€Π΅:

  • 4 ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΊΠ°Ρ€Ρ‚Ρ‹ – ΠšΠ°Ρ€Π΅;
  • 3 ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΊΠ°Ρ€Ρ‚Ρ‹ ΠΈ 2 Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΊΠ°Ρ€Ρ‚Ρ‹ – Π€ΡƒΠ»Π» Π₯аус;
  • 5 ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ΄ΡƒΡ‰ΠΈΡ… ΠΊΠ°Ρ€Ρ‚ – Π‘Ρ‚Ρ€ΠΈΡ‚;
  • 3 ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΊΠ°Ρ€Ρ‚Ρ‹ – Π‘Π΅Ρ‚;
  • 2 ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΊΠ°Ρ€Ρ‚Ρ‹ ΠΈ 2 Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΊΠ°Ρ€Ρ‚Ρ‹ – Π”Π²Π΅ ΠΏΠ°Ρ€Ρ‹;
  • 2 ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΊΠ°Ρ€Ρ‚Ρ‹ – ΠŸΠ°Ρ€Π°;
  • Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΈΠ· Π²Ρ‹ΡˆΠ΅ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ – Π‘Ρ‚Π°Ρ€ΡˆΠ°Ρ ΠΊΠ°Ρ€Ρ‚Π°.

Если Π² Ρ€ΡƒΠΊΠ΅ окаТСтся 5 ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… ΠΊΠ°Ρ€Ρ‚ – вывСсти Π¨ΡƒΠ»Π΅Ρ€.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π²Π²ΠΎΠ΄Π°:

Π‘Ρ‚Ρ€ΠΎΠΊΠ° ΠΈΠ· 5 чисСл ΠΎΡ‚ 1 Π΄ΠΎ 13 Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΎΠ±Π΅Π» – Π½ΠΎΠΌΠ΅Ρ€Π° ΠΊΠ°Ρ€Ρ‚ Π² Ρ€ΡƒΠΊΠ΅.

        #ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Π²ΠΎΠ΄Π°:
4 6 5 7 8

    

Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π²Ρ‹Π²ΠΎΠ΄Π°:

НазваниС Π»ΡƒΡ‡ΡˆΠ΅ΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ ΠΊΠ°Ρ€Ρ‚.

        #ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π²ΠΎΠ΄Π°:
Π‘Ρ‚Ρ€ΠΈΡ‚

    

РСшСниС

Бпособ 1:

        cards = sorted(map(int, input().split()))
n, x = len(set(cards)), cards.count(cards[2])
if n == 1: 
    print('Π¨ΡƒΠ»Π΅Ρ€')
elif n == 5 and cards[4] - cards[0] == 4: 
    print('Π‘Ρ‚Ρ€ΠΈΡ‚')
elif x == 4: 
    print('ΠšΠ°Ρ€Π΅')
elif n == 2: 
    print('Π€ΡƒΠ»Π» Π₯аус')    
elif x == 3: 
    print('Π‘Π΅Ρ‚')
elif n == 3: 
    print('Π”Π²Π΅ ΠΏΠ°Ρ€Ρ‹')
elif n == 4: 
   print('ΠŸΠ°Ρ€Π°')
else: 
   print('Π‘Ρ‚Π°Ρ€ΡˆΠ°Ρ ΠΊΠ°Ρ€Ρ‚Π°')

    

Бпособ 2:

        cards = list(sorted(map(int, input().split())))
unique_cards = {crd: cards.count(crd) for crd in cards}
if len(unique_cards) == 1:
    print('Π¨ΡƒΠ»Π΅Ρ€')
else:
    count = sorted(list(unique_cards.values()))
    if count == [1, 4]:
        print('ΠšΠ°Ρ€Π΅')
    elif count == [2, 3]:
        print('Π€ΡƒΠ»Π» Π₯аус')
    elif cards == list(range(cards[0], cards[0] + 5)):
        print('Π‘Ρ‚Ρ€ΠΈΡ‚')
    elif count == [1, 1, 3]:
        print('Π‘Π΅Ρ‚')
    elif count == [1, 2, 2]:
        print('Π”Π²Π΅ ΠΏΠ°Ρ€Ρ‹')
    elif count == [1, 1, 1, 2]:
        print('ΠŸΠ°Ρ€Π°')
    else:
        print('Π‘Ρ‚Π°Ρ€ΡˆΠ°Ρ ΠΊΠ°Ρ€Ρ‚Π°')

    

Бпособ 3:

        from collections import Counter
COMBO = [
    ("Π¨ΡƒΠ»Π΅Ρ€", lambda h: len(set(h)) == 1),
    ("ΠšΠ°Ρ€Π΅", lambda h: Counter(h).most_common()[0][1] == 4),
    ("Π€ΡƒΠ»Π» Π₯аус", lambda h: len(set(h))==2),
    ("Π‘Ρ‚Ρ€ΠΈΡ‚", lambda h: len(set(h))==5 and h[-1]-h[0] == 4),
    ("Π‘Π΅Ρ‚", lambda h: Counter(h).most_common()[0][1] == 3),
    ("Π”Π²Π΅ ΠΏΠ°Ρ€Ρ‹", lambda h: len(set(h))==3),
    ("ΠŸΠ°Ρ€Π°", lambda h: len(set(h))==4),
    ("Π‘Ρ‚Π°Ρ€ΡˆΠ°Ρ ΠΊΠ°Ρ€Ρ‚Π°", lambda h: True)
]
hand = sorted(list(map(int, input().split())))
for c in COMBO:
    result, rule = c
    if rule(hand):
        print(result)
        break

    
***

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

Π’ΠΠšΠΠΠ‘Π˜Π˜

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ вакансию
Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ C++
Москва, ΠΏΠΎ ΠΈΡ‚ΠΎΠ³Π°ΠΌ собСсСдования

Π›Π£Π§Π¨Π˜Π• БВАВЬИ ПО Π’Π•ΠœΠ•