informasi kontak saya
Surat[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Diberikan pola reguler dan string s, tentukan apakah s mengikuti pola reguler yang sama.
Kepatuhan di sini mengacu pada pencocokan lengkap. Misalnya, ada korespondensi koneksi dua arah antara setiap huruf dalam pola dan setiap kata yang tidak kosong dalam string s.
Contoh 1:
Input: pattern = “abba”, s = “anjing kucing kucing anjing”
Keluaran: benar
Contoh 2:
Input: pattern = “abba”, s = “anjing kucing kucing ikan”
Keluaran: salah
Contoh 3:
Input: pattern = “aaaa”, s = “anjing kucing kucing anjing”
Keluaran: salah
petunjuk:
1 <= pola.panjang <= 300
pola hanya berisi huruf kecil bahasa Inggris
1 <= s.panjang <= 3000
s hanya berisi huruf kecil bahasa Inggris dan ' '
s tidak mengandung pasangan spasi di depan atau di belakang
Setiap kata dalam s dipisahkan oleh satu spasi
Tabel hash, hubungan bijeksi
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