ধরুন আমাদের একটি বাইনারি স্ট্রিং str আছে, আমাদের পরীক্ষা করতে হবে স্ট্রিং এর 1s এর সবগুলোই সমান দূরত্বের কিনা। অন্য কথায়, প্রতি দুই 1 সেকেন্ডের মধ্যে দূরত্ব একই। এবং স্ট্রিংটিতে কমপক্ষে দুটি 1s রয়েছে৷
সুতরাং, যদি ইনপুটটি s ="100001000010000" এর মত হয়, তাহলে আউটপুটটি True হবে কারণ 1s একে অপরের থেকে 4 দূরত্বে থাকে।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- সূচী :=একটি নতুন তালিকা
- 0 থেকে s আকারের রেঞ্জের জন্য,
- করুন
- যদি s[i] 1 এর মত হয়, তাহলে
- সূচির শেষে i ঢোকান
- যদি s[i] 1 এর মত হয়, তাহলে
- t :=সূচকের আকার
- আমি 1 থেকে t - 1 রেঞ্জের জন্য, কর
- যদি (index[i] - index[i - 1]) একই না হয় (index[1] - index[0]), তাহলে
- মিথ্যে ফেরত দিন
- যদি (index[i] - index[i - 1]) একই না হয় (index[1] - index[0]), তাহলে
- সত্য ফেরান
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
def solve(s): index = [] for i in range(len(s)): if s[i] == '1': index.append(i) t = len(index) for i in range(1, t): if (index[i] - index[i - 1]) != (index[1] - index[0]): return False return True s = "100001000010000" print(solve(s))
ইনপুট
"100001000010000"
আউটপুট
True