ধরুন আমাদের একটি স্ট্রিং আছে; এই স্ট্রিংটিতে কতগুলি প্যালিনড্রোমিক সাবস্ট্রিং রয়েছে তা আমাদের গণনা করতে হবে। বিভিন্ন সূচনা সূচক বা শেষ সূচক সহ সাবস্ট্রিংগুলিকে বিভিন্ন সাবস্ট্রিং হিসাবে গণনা করা হয় এমনকি তারা একই অক্ষর নিয়ে গঠিত। সুতরাং ইনপুট যদি "aaa" এর মত হয়, তাহলে আউটপুট হবে 6 কারণ এখানে ছয়টি প্যালিনড্রোমিক সাবস্ট্রিং যেমন "a", "a", "a", "aa", "aa", "aaa"
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- গণনা :=0
- এর জন্য i রেঞ্জ 0 থেকে দৈর্ঘ্য যদি স্ট্রিং
- j এর জন্য i + 1 থেকে স্ট্রিং এর দৈর্ঘ্য + 1
- পরিসরে
- temp :=সূচক i থেকে j পর্যন্ত সাবস্ট্রিং
- তাপ যদি প্যালিনড্রোম হয়, তাহলে গণনা 1 দ্বারা বাড়ান
- j এর জন্য i + 1 থেকে স্ট্রিং এর দৈর্ঘ্য + 1
- রিটার্ন কাউন্টার
উদাহরণ(পাইথন)
আরো ভালোভাবে বোঝার জন্য নিচের বাস্তবায়নটি দেখি -
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