Recursos-LCC

Um arquivo de todo material que consegui reunir, pertinente ao curso de LCC da UM.

View on GitHub

LA2 | Torneio 4 (2022/2023) | Segredo


'''
Implemente a uma função que dada uma palavra s só com minúsculas 
descubra a menor palavra com os mesmos caracteres que esteja à distância k
de s. A distância entre duas palavras com o mesmo tamanho é o número de
caracteres diferentes na mesma posição.
'''


def val(s1, s2, k):
    dist = 0
    for i1, i2 in zip(s1, s2):
        dist += abs(ord(i2) - ord(i1))
    return dist == k

def pal(s, k, x, v, u):
    if len(x) == len(s):
        if val(s, x, k):
            v.add(x)
        return
    for i in range(len(s)):
        if not u[i]:
            u[i] = True
            pal(s, k, x + s[i], v, u)
            u[i] = False

def search(s, k):
    p = set()
    falso = [False] * len(s)
    pal(s, k, "", p, falso)
    return p


def segredo(s, k):
    res = list(search(s, k))
    res.sort()
    return res[0]


Testes

# 1
s = "abc"
k = 4
> Resultado = "bca"

# 2
s = "batata"
k = 36
> Resultado = "tabata"

retroceder