ধরুন, একটি বাইনারি স্ট্রিং s এবং একটি মান m দেওয়া হয়েছে। আমাদের যাচাই করতে হবে যে স্ট্রিং-এ কি m সংখ্যক தொடரাবর্তী 1 বা m সংখ্যক தொடரাবর্তী 0 আছে।
যেমন, ইনপুট s = "1110111000111", m = 3 হলে আউটপুট হবে True, কারণ এতে তিনটি করে தொடரাবর্তী ০ এবং ১ আছে।
সমাধানের ধাপসমূহ
str_size = len(s)।count_0 = 0, count_1 = 0।i = 0থেকেstr_size-2পর্যন্ত লুপ চালান:- যদি
s[i] == '0'হয়:count_1 = 0; count_0 += 1। - অন্যথায়:
count_0 = 0; count_1 += 1। - যদি
count_0 == mবাcount_1 == mহয়, তবে True ফেরত দিন।
- যদি
- লুপ শেষ হলে False ফেরত দিন।
উদাহরণ কোড
def solve(s, m):
str_size = len(s)
count_0 = 0
count_1 = 0
for i in range(str_size - 1):
if s[i] == '0':
count_1 = 0
count_0 += 1
else:
count_0 = 0
count_1 += 1
if count_0 == m or count_1 == m:
return True
return False
s = "1110111000111"
m = 3
print(solve(s, m))
ইনপুট
"1110111000111", 3
আউটপুট
True