मान लीजिए हमारे पास शब्दों की एक सूची है, यहां प्रत्येक शब्द को प्रत्येक अक्षर के मोर्स कोड के संयोजन के रूप में लिखा जा सकता है। उदाहरण के लिए, शब्द "cba" को "-.-..--..." के रूप में लिखा जा सकता है, यह संयोजन "-.-." | "-..." | ".-" है। इस प्रकार के संयोजन को शब्द का परिवर्तन कहा जाता है।
हम जानते हैं कि अंतर्राष्ट्रीय मोर्स कोड एक मानक एन्कोडिंग को परिभाषित करता है जहां प्रत्येक अक्षर को डॉट्स और डैश की श्रृंखला में मैप किया जाता है, जैसे: "a" -> ".-", "b" -> "-...", "c" -> "-.-.", आदि।
अंग्रेजी वर्णमाला के सभी 26 अक्षरों की सूची इस प्रकार है:
[".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."]
उदाहरण के लिए, यदि इनपुट ["gin", "zen", "gig", "msg"] है, तो आउटपुट 2 होगा, क्योंकि प्रत्येक शब्द का परिवर्तन है: "gin" -> "--...-.", "zen" -> "--...-.", "gig" -> "--...--.", "msg" -> "--...--."।
हल करने के चरण
- morse_codes := [".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."]
- s := एक नया सेट
- words में प्रत्येक शब्द के लिए:
- temp := खाली स्ट्रिंग
- शब्द में प्रत्येक c के लिए:
- temp := temp + morse_codes[c का ASCII - 97]
- temp को s में जोड़ें
- 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