minhas informações de contato
Correspondência[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
LeetCode 290. Padrões de palavras
Dado um padrão regular e uma string s, determine se s segue o mesmo padrão regular.
Conformidade aqui se refere à correspondência completa. Por exemplo, há uma correspondência de conexão bidirecional entre cada letra no padrão e cada palavra não vazia na string s.
Exemplo 1:
Entrada: padrão = “abba”, s = “cachorro gato gato cachorro”
Saída: verdadeiro
Exemplo 2:
Entrada: padrão = “abba”, s = “cachorro gato gato peixe”
Saída: falso
Exemplo 3:
Entrada: padrão = “aaaa”, s = “cachorro gato gato cachorro”
Saída: falso
dica:
1 <= padrão.comprimento <= 300
padrão contém apenas letras minúsculas em inglês
1 <= s.comprimento <= 3000
s contém apenas letras minúsculas em inglês e ' '
s não contém nenhum par de espaços à esquerda ou à direita
Cada palavra em s é separada por um único espaço
Tabela hash, relação de bijeção
class Solution:
def wordPattern(self, pattern: str, s: str) -> bool:
length = len(pattern)
sub_strs = s.split()
if len(pattern) != len(sub_strs):
return False
d1, d2 = {}, {}
for i in range(length):
if pattern[i] in d1:
if d1[pattern[i]] != sub_strs[i]:
return False
if sub_strs[i] in d2:
if d2[sub_strs[i]] != pattern[i]:
return False
d1[pattern[i]] = sub_strs[i]
d2[sub_strs[i]] = pattern[i]
return True