মনে করুন একটি স্ট্রিং আছে; আমাদের গণনা করতে হবে এই স্ট্রিং-এ কতগুলো প্যালিনড্রোমিক সাবস্ট্রিং আছে। ভিন্ন শুরু বা শেষ সূচক 가진 সাবস্ট্রিংগুলো আলাদা গণনা হবে এমনকি সেগুলো একই ক্যারেক্টার নিয়ে তৈরি হোক। যেমন ইনপুট "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 ১ বাড়ান
- for j in range i + 1 to length of string + 1
- 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