मान लीजिए हमारे पास 0 और 1 की एक सरणी A है, N[i] को इंडेक्स A[0] से A[i] तक का i-वां उपसरणी मानते हैं जिसे बाइनरी संख्या के रूप में व्याख्या किया जाता है। हमें बूलियन उत्तरों की एक सूची ढूंढनी है, जहां answer[i] तभी सत्य है जब N[i] 5 से विभाज्य हो।
तो, यदि इनपुट [0,1,1,1,1,1] जैसा है, तो आउटपुट [true,false,false,false,true,false] होगा।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- length := A का आकार
- ans:= length आकार की एक सरणी बनाएं, और false से भरें
- number:= A से प्रत्येक तत्व को जोड़कर एक बाइनरी मान
- i को 0 से length तक रेंज में, करें
- यदि number mod 5, 0 के समान है, तो
- ans[length-i-1] := True
- number:= number / 2
- यदि number mod 5, 0 के समान है, तो
- ans लौटाएं
बेहतर समझ के लिए निम्न कार्यान्वयन देखें -
उदाहरण
class Solution:
def prefixesDivBy5(self, A):
length = len(A)
ans = [False] * length
number = int("".join(map(str, A)), 2)
for i in range(length):
if number % 5 == 0:
ans[length - i - 1] = True
number = number >> 1
return ans
ob = Solution()
print(ob.prefixesDivBy5([0, 1, 1, 1, 1, 1]))
इनपुट
[0,1,1,1,1,1]
आउटपुट
[True, False, False, False, True, False]