मान लीजिए हमारे पास शब्दों की एक सूची है, यहां प्रत्येक शब्द को प्रत्येक अक्षर के मोर्स कोड के संयोजन के रूप में लिखा जा सकता है। उदाहरण के लिए, "cba" शब्द को "-.-..--..." के रूप में लिखा जा सकता है, यह संयोजन "-.-" है। | "-..." | ".-")। इस तरह के संयोजन को शब्द का रूपांतरण कहा जाता है।
हम जानते हैं कि अंतर्राष्ट्रीय मोर्स कोड एक मानक एन्कोडिंग को परिभाषित करता है जहां प्रत्येक अक्षर को डॉट्स और डैश की एक श्रृंखला में मैप किया जाता है, जो निम्नानुसार है:"ए" मैप्स टू ".-", "बी" मैप्स टू "-...", "सी "-.-." के लिए मानचित्र, और इसी तरह।
अंग्रेजी वर्णमाला के सभी 26 अक्षरों की सूची इस प्रकार है -
["-","-...",,"-.-.","-..",".","...-.","--.","...", "..",".---",,"-.-",,".-..","--",,"-.","---",,".--.","- -.-",".-.","...",,"-",,"..-",,"...-",,".--",,"-..-",,"-. --","--.."]
इसलिए, यदि इनपुट ["जिन", "ज़ेन", "गिग", "msg"] जैसा है, तो आउटपुट 2 होगा, क्योंकि प्रत्येक शब्द का रूपांतरण है:"जिन" होगा "--.. .-.", "ज़ेन" होगा "--...-." "गिग" होगा "--...--।" और "msg" होगा "--...--.".
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- morse_codes:=["-","-...",,"-.-.","-..",","...-.","--."," ....","..",".---",,"-.-",,".-..","--",,"-.","---",,".- -।","--.-", ".-।", "...", "-", "..-", "...-", ".--", "-.. -","-.--",,"--.."]
- s:=एक नया सेट
- शब्दों में प्रत्येक शब्द के लिए, करें
- अस्थायी:=रिक्त स्ट्रिंग
- शब्द में प्रत्येक सी के लिए, करें
- अस्थायी:=अस्थायी + morse_codes[ASCII of c - 97]
- अस्थायी को s में जोड़ें
- वापसी का आकार
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
class Solution: def uniqueMorseRepresentations(self, words): morse_codes=[".-","-...","-.-.","-..",".","..-.","-- .","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".- .","...","-","..-","...-",".--","-..-","-.--","--.."] s=set() for word in words: temp='' for c in word: temp+=morse_codes[ord(c)-97] s.add(temp) return len(s) ob = Solution() print(ob.uniqueMorseRepresentations(["gin", "zen", "gig", "msg"]))
इनपुट
["gin", "zen", "gig", "msg"]
आउटपुट
2