100 / 205
LeetCode · EasyOson10 ball· ~15 daqiqa

Word Pattern

Sizga bitta qonuniyatni bildiruvchi pattern satri va kichik ingliz harflaridan tuzilgan so'zlardan iborat bo'lgan s satri berilgan.

Agar s dagi so'zlar ketma-ketligi pattern dagi qonuniyatga (bijection) to'liq mos tushsa, true qaytaring, aks holda false.

Bijection deganda pattern dagi har bir belgi s dagi alohida va yagona bir so'zga mos tushishi va aksincha bo'lishi tushuniladi.

example.go
func solve(pattern string, s string) bool {
    // ...
}

Misollar

kod
Input: pattern = "abba", s = "dog cat cat dog"
Output: true
Tushuntirish:
'a' -> "dog"
'b' -> "cat"
kod
Input: pattern = "abba", s = "dog cat cat fish"
Output: false
kod
Input: pattern = "aaaa", s = "dog cat cat dog"
Output: false

Maslahatlar

  1. Bu bijection (ikki tomonlama bir xil moslik) masalasi — bitta belgidan so'zga va bitta so'zdan belgiga ikkita alohida map kerak bo'lishi mumkinligini o'ylang.
  2. s ni so'zlarga ajrating va uzunligini pattern uzunligi bilan solishtiring; so'ng har bir pozitsiya uchun ikkita map (belgi->so'z va so'z->belgi) orqali avvalgi moslik bilan ziddiyat yo'qligini tekshirib, mos kelmasa false qaytaring.