ধরুন আমাদের একটি স্ট্রিং s আছে, আমাদের পরীক্ষা করতে হবে যে আমরা এটিকে চারটি সাব-স্ট্রিং-এ বিভক্ত করতে পারি কি না যাতে প্রত্যেকটি খালি নয় এবং অনন্য।
সুতরাং, যদি ইনপুটটি s ="helloworld" এর মত হয়, তাহলে আউটপুটটি True হবে কারণ সাব-স্ট্রিংগুলির একটি সম্ভাব্য সেট হল ["hel", "lo", "wor", "ld"]
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- যদি s>=10 এর আকার হয়, তাহলে
- সত্য ফেরান
- এর জন্য 1 থেকে s - 1 এর আকারের মধ্যে, কর
- j-এর জন্য i + 1 থেকে s - 1 এর আকারে, do
- j + 1 থেকে s - 1 এর আকারে k এর জন্য
- করুন
- sub1 :=s[সূচী 0 থেকে i - 1]
- sub2 :=s[সূচী i থেকে j - i - 1]
- sub3 :=s[সূচী j থেকে k - j - 1]
- sub4 :=s[ সূচক k থেকে s - k - 1 এর আকার পর্যন্ত]
- যদি sub1 sub2 sub3 এবং sub4 সব আলাদা হয়, তাহলে
- সত্য ফেরান
- করুন
- j-এর জন্য i + 1 থেকে s - 1 এর আকারে, do
- মিথ্যে ফেরত দিন
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
def solve(s): if len(s) >= 10: return True for i in range(1, len(s)): for j in range(i + 1, len(s)): for k in range(j + 1, len(s)): sub1 = s[0:i] sub2 = s[i:j - i] sub3 = s[j: k - j] sub4 = s[k: len(s) - k] if sub1 != sub2 and sub1 != sub3 and sub1 != sub4 and sub2 != sub3 and sub2 != sub4 and sub3 != sub4: return True return False s = "helloworld" print (solve(s))
ইনপুট
"helloworld"
আউটপুট
True