
# Инвертирует строку
from ast import IsNot


def solution(string):
    return string[::-1]


# print(solution("qwerty"))

# ------------------------------------------------------------------------------- #

# Убирает все повторяющиеся буквы.
def unique_in_order(iterable):
    s = set(iterable)
    l = []
    for i in iterable:
        if i in s:
            l.append(i)
            s.remove(i)
    
    return l

# print(unique_in_order("qwereteyty"))


# ------------------------------------------------------------------------------- #
# Вывод суммы чисел в двоичном виде без символо '0b'

def add_binary(a,b):
    return bin(a + b)[2:]
    
'''
# Интересное решение    
def add_binary(a,b):    
    return f"{a + b:b}"
'''


# print(add_binary(1, 1))

# ------------------------------------------------------------------------------- #
'''
def find_smallest_int(arr):
    min = arr[0]
    for i in arr:
        if i < min:
            min = i
    return min
'''

def find_smallest_int(arr):
    return min(arr)

# print(find_smallest_int([0, 1-2**64, 2**64]))

# ------------------------------------------------------------------------------- #
# Сумма цифр в стпени равной длине числа должна быть равна самому числу
'''
def narcissistic(value):

    number_digits = len(str(value))
    new_value = value
    sum = 0
    digit = 0

    for i in range(number_digits - 1, -1, -1):
        digit = int(new_value/10**i)
        sum += digit**number_digits        
        new_value -= digit*10**i

    return sum == value        
'''

# Красивое решение решение
def narcissistic(value):
    return value == sum(int(x) ** len(str(value)) for x in str(value))

# print(narcissistic(371))

import string


# Генератор словаря
def dict_generate():
    return {x: string.ascii_uppercase[x-1] for x in range(1,21)}

print(dict_generate())
