ধরুন আমাদের কাছে শব্দের একটি তালিকা আছে, এখানে প্রতিটি শব্দ প্রতিটি অক্ষরের মোর্স কোডের সংমিশ্রণ হিসাবে লেখা যেতে পারে। উদাহরণস্বরূপ, "cba" শব্দটিকে "-.-...--..." হিসাবে লেখা যেতে পারে, এটি হল "-.-।" | "-..." | "।-")। এই ধরনের সংমিশ্রণকে একটি শব্দের রূপান্তর বলা হয়।
আমরা জানি যে ইন্টারন্যাশনাল মোর্স কোড একটি স্ট্যান্ডার্ড এনকোডিং সংজ্ঞায়িত করে যেখানে প্রতিটি অক্ষরকে ডট এবং ড্যাশের একটি সিরিজে ম্যাপ করা হয়, নিম্নরূপ:"a" মানচিত্র ".-" তে, "b" মানচিত্র "-...", "c" "-এর মানচিত্র "-.-.", ইত্যাদি।
এখানে ইংরেজি বর্ণমালার সমস্ত 26টি অক্ষরের তালিকা নিম্নরূপ -
["-","-...","-.-.","-..",","...-","--","...", "..",".---","-.-", "-...","--","-","---",."--"," -.-",।-","...","-",..-","...-",।--","-..-","-। --","--.."]
সুতরাং, যদি ইনপুটটি ["gin", "zen", "gig", "msg"] এর মত হয়, তাহলে আউটপুট হবে 2, যেহেতু প্রতিটি শব্দের রূপান্তর হল:"gin" হবে "--... .-.", "জেন" হবে "---...-।" "গিগ" হবে "---...---।" এবং "msg" হবে "---...--."।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- morse_codes:=[."-","-...","-.-.","-..",","..-","--"," ....", ".",".---","-.-", "-...","--","-.","---",।- -।","--।-",।-.","...","-",...-","...-",।--","-.. -","-.--","--.."]
- s:=একটি নতুন সেট
- শব্দে প্রতিটি শব্দের জন্য, করুন
- temp:=ফাঁকা স্ট্রিং
- শব্দের প্রতিটি c-এর জন্য, করুন
- temp :=temp + morse_codes[ ASCII of c - 97]
- s-এ temp যোগ করুন
- 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