Número Máximo De Palabras Que Puedes Escribir

Hay un teclado que funciona mal, algunas teclas no funcionan. Dado un string text de palabras separadas por un espacio (sin espacios delante ni detrás) y un string brokenLetters de todas las letras que están rotas, retorna el número de palabras del texto que puedes formar.

Ejemplo 1:

Entrada:

text = "hello world", brokenLetters = "ad"

Salida:

1
Explicación: No podemos escribir "world" porque la tecla 'd' está rota.

Ejemplo 2:

Entrada:

text = "leet code", brokenLetters = "lt"

Salida:

1
Explicación: No podemos escribir "leet" porque la teclas 'l' y  't' están rotas.

Ejemplo 3:

Entrada:

text = "leet code", brokenLetters = "e"

Salida:

0
Explicación: No podemos escribir ninguna palabra, del texto dado, porque la tecla 'e' está rota.

Condiciones:

  • 1 <= text.length <= 104
  • 0 <= brokenLetters.length <= 26
  • text consiste de palabras separadas por un único espacio sin espacios delante ni detrás.
  • Cada palabra consiste de letras del alfabeto en inglés.
  • brokenLetters consiste de letras minúsculas (sin repeticiones) del alfabeto en inglés.

Solución

import pytest


class Solution:
    def canBeTypedWords(self, text: str, brokenLetters: str) -> int:
        words = text.split()
        answer = len(words)
        for word in words:
            for broken in brokenLetters:
                if broken in word:
                    answer -= 1
                    break
        return answer



@pytest.mark.parametrize(
    'text,broken_letters,expected',
    [
        ('hello world', 'ad', 1),
        ('leet code', 'lt', 1),
        ('leet code', 'e', 0)
    ])
def test_can_be_typed_words(text, broken_letters, expected):
    assert Solution().canBeTypedWords(text, broken_letters) == expected

slackmart space © 2025