शब्द पैटर्न
a patternऔर एक स्ट्रिंग दिया गया है s, तो ढूंढें यदि sसमान पैटर्न का अनुसरण करता है।
यहाँ अनुसरण का अर्थ है एक पूर्ण मिलान, जैसे कि एक अक्षर के बीच patternऔर एक गैर-खाली शब्द के बीच एक आपत्ति है s।
उदाहरण 1:
Input: pattern = "abba", s = "dog cat cat dog"
Output: true
Input: pattern = "abba", s = "dog cat cat fish"
Output: false
Input: pattern = "aaaa", s = "dog cat cat dog"
Output: false
जैसा कि हम जानते हैं
"अब्बा" -> "कुत्ते बिल्ली बिल्ली कुत्ता"
'ए' -> "कुत्ता"
'बी' -> "बिल्ली"
अगर हमें एक अलग स्ट्रिंग वाला नक्शा मिलता है तो हम कह सकते हैं कि यह वैध परीक्षण मामला नहीं है।
"अबफा" -> "कुत्ता बिल्ली कुत्ता कुत्ता"
'ए' -> "कुत्ता"
'बी' -> "बिल्ली"
'एफ' -> "कुत्ता"
लेकिन कुत्ता पहले से ही एक को सौंपा गया है। तो हम दो मानचित्रों का उपयोग करते हैं एक -> कुत्ते के साथ मानचित्रण करेगा और दूसरा मानचित्र कुत्ते के साथ मानचित्रण करेगा -> एक ताकि हम जान सकें कि कुत्ते को पहले से ही किसी अन्य चरित्र के साथ मैप किया जा रहा है।
चलिए कोड शुरू करते हैं
class Solution {
public boolean wordPattern(String pattern, String s) {
String[] tokens = s.split(" ");
if(pattern.length() != tokens.length)
return false;
HashMap<String, Character> map = new HashMap<>();
HashMap<Character, String> reverseMap = new HashMap<>();
for(int i=0;i<tokens.length;i++) {
String find = tokens[i];
char pt = pattern.charAt(i);
if(!map.containsKey(find))
map.put(find, pt);
if(!reverseMap.containsKey(pt))
reverseMap.put(pt, find);
char mapPt = map.get(find);
String mapStr = reverseMap.get(pt);
if(mapPt != pt)
return false;
if(!mapStr.equals(find))
return false;
}
return true;
}
}

![क्या एक लिंक्ड सूची है, वैसे भी? [भाग 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































