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

পাইথনে প্যালিনড্রোমিক সাবস্ট্রিং গণনা

মনে করুন একটি স্ট্রিং আছে; আমাদের গণনা করতে হবে এই স্ট্রিং-এ কতগুলো প্যালিনড্রোমিক সাবস্ট্রিং আছে। ভিন্ন শুরু বা শেষ সূচক 가진 সাবস্ট্রিংগুলো আলাদা গণনা হবে এমনকি সেগুলো একই ক্যারেক্টার নিয়ে তৈরি হোক। যেমন ইনপুট "aaa" হলে আউটপুট হবে ৬, কারণ ছয়টি প্যালিনড্রোমিক সাবস্ট্রিং আছে: "a", "a", "a", "aa", "aa", "aaa"।

এটি সমাধান করার জন্য আমরা নিচের ধাপগুলো অনুসরণ করব:

  • count := 0
  • for i in range 0 to length of string
    • for j in range i + 1 to length of string + 1
      • temp := i থেকে j সূচক পর্যন্ত সাবস্ট্রিং
      • যদি temp প্যালিনড্রোম হয়, তবে count ১ বাড়ান
  • counter রিটার্ন করুন

উদাহরণ (পাইথন)

নিচের ইমপ্লিমেন্টেশনটি দেখুন ভালো বুঝতে:

class Solution:
    def countSubstrings(self, s):
        counter = 0
        for i in range(len(s)):
            for j in range(i+1, len(s)+1):
                temp = s[i:j]
                if temp == temp[::-1]:
                    counter += 1
        return counter

ob1 = Solution()
print(ob1.countSubstrings("aaaa"))

ইনপুট

"aaaa"

আউটপুট

10

  1. পাইথনে কোটেশন (Quotation in Python)

  2. পাইথনে স্ট্রিং রোটেশন যাচাই

  3. পাইথনে স্ট্রিং রিভার্স (ইন-প্লেস)

  4. পাইথনে casefold() স্ট্রিং মেথড