কম্পিউটার টিউটোরিয়াল

পাইথনে ইউনিক মোর্স কোড ওয়ার্ডস (Unique Morse Code Words)


সমস্যা বিবরণ

শব্দের প্রতিটি অক্ষরকে মোর্স কোডে রূপান্তর করে একটি শব্দের "ট্রান্সফরমেশন" বানানো হয়। দেওয়া শব্দগুলোর মধ্যে কতগুলো ইউনিক ট্রান্সফরমেশন আছে তা বের করুন।

মোর্স কোড টেবিল

[".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."]

ইনডেক্স ০ = 'a', ১ = 'b', ... ২৫ = 'z'

উদাহরণ

ইনপুট: ["gin", "zen", "gig", "msg"] → আউটপুট: 2

ট্রান্সফরমেশন: "gin"→"--...-.", "zen"→"--...-.", "gig"→"--...--.", "msg"→"--...--." → ইউনিক ২টি।

এলগরিদম

  1. মোর্স কোড লিস্ট সংজ্ঞায়িত করুন।
  2. একটি সেট seen তৈরি করুন।
  3. প্রতিটি শব্দের জন্য:
    • প্রতিটি অক্ষর c এর মোর্স কোড morse[ord(c)-97] কনক্যাটিনেট করুন।
    • ফলাফল seen-এ যোগ করুন।
  4. len(seen) রিটার্ন করুন।

পাইথন বাস্তবায়ন

class Solution:
    def uniqueMorseRepresentations(self, words):
        morse = [".-","-...","-.-.","-..",".","..-.","--.","....","..",".---",
                 "-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-",
                 "..-","...-",".--","-..-","-.--","--.."]
        seen = set()
        for word in words:
            trans = ''.join(morse[ord(c)-97] for c in word)
            seen.add(trans)
        return len(seen)

ob = Solution()
print(ob.uniqueMorseRepresentations(["gin","zen","gig","msg"]))  # 2

ইনপুট / আউটপুট

ইনপুট: ["gin", "zen", "gig", "msg"]
আউটপুট: 2
  1. পাইথন ম্যাথ অপারেটর: একটি গাইড

  2. পাইথন ইন্টারপ্রেটার: ধাপে ধাপে গাইড

  3. পাইথন কোড অপ্টিমাইজেশনের ১১ টি কার্যকর টিপস

  4. পাইথনে মোর্স কোড ট্রান্সলেটর