কম্পিউটার

পাইথনে শব্দের তালিকার জন্য কতগুলি স্বতন্ত্র ঘূর্ণন গোষ্ঠী আছে তা খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের একটি স্ট্রিং এর জন্য ঘূর্ণন গোষ্ঠী রয়েছে যা তার অনন্য ঘূর্ণনগুলির সমস্ত ধারণ করে। যদি ইনপুটটি "567" এর মত হয় তবে এটি "675" এবং "756" এ ঘোরানো যেতে পারে এবং তারা সব একই ঘূর্ণন গোষ্ঠীতে থাকে। এখন যদি আমাদের কাছে স্ট্রিং শব্দের একটি তালিকা থাকে, তাহলে আমাদের প্রতিটি শব্দকে তাদের ঘূর্ণন গোষ্ঠী অনুসারে গোষ্ঠীবদ্ধ করতে হবে এবং মোট গোষ্ঠীর সংখ্যা বের করতে হবে।

সুতরাং, যদি ইনপুটটি শব্দের মত হয় =["xyz", "ab", "ba", "c", "yzx"], তাহলে আউটপুট হবে 3, কারণ তিনটি ঘূর্ণন গোষ্ঠী রয়েছে − ["xyz", "yzx"], ["ab", "ba"], ["c"]।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • s:=একটি নতুন সেট
  • ct:=0
  • শব্দে প্রতিটি i এর জন্য, করুন
    • যদি আমি s-এ না থাকি, তাহলে
      • ct :=ct + 1
    • 0 থেকে i এর মাপের পরিসরে j-এর জন্য
        করুন
      • temp :=i[সূচী j থেকে শেষ পর্যন্ত] i এর সাবস্ট্রিং [শুরু থেকে j])
      • s-এ temp সন্নিবেশ করুন
  • সিটি ফেরত দিন

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

class Solution:
   def solve(self, words):
      s=set()
      ct=0
      for i in words:
         if i not in s:
            ct+=1
         for j in range(len(i)):
            s.add(i[j:]+i[:j])
      return ct
ob = Solution()
print(ob.solve(["xyz", "ab", "ba", "c", "yzx"]))

ইনপুট

["xyz", "ab", "ba", "c", "yzx"]

আউটপুট

3

  1. পাইথনে কয়টি লাইন ছেদ করে তা খুঁজে বের করার প্রোগ্রাম

  2. পাইথন প্রোগ্রাম কত কিউব কাটা হয় তা খুঁজে বের করতে

  3. পাইথন প্রোগ্রাম একটি তালিকার ক্রমবর্ধমান যোগফল খুঁজে বের করতে

  4. অ্যারে রোটেশনের জন্য পাইথন প্রোগ্রাম