2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Kun annetaan säännöllinen kuvio ja merkkijono s, määritä, noudattaako s samaa säännöllistä kuviota.
Yhteensopivuus tarkoittaa tässä täydellistä vastaavuutta. Esimerkiksi jokaisen kuvion kirjaimen ja merkkijonon s ei-tyhjän sanan välillä on kaksisuuntainen yhteys.
Esimerkki 1:
Syöte: kuvio = "abba", s = "koira kissa kissa koira"
Tulos: tosi
Esimerkki 2:
Syöte: kuvio = "abba", s = "koira kissa kissa kala"
Tulos: false
Esimerkki 3:
Syöte: kuvio = "aaaa", s = "koira kissa kissa koira"
Tulos: false
vihje:
1 <= kuvio. pituus <= 300
kuvio sisältää vain pieniä englanninkielisiä kirjaimia
1 <= s.pituus <= 3000
s sisältää vain pieniä englanninkielisiä kirjaimia ja " "
s ei sisällä välilyöntejä alku- tai perässä
Jokainen s:n sana erotetaan yhdellä välilyönnillä
Hash-taulukko, bijektiosuhde
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