मान लीजिए कि हमारे पास 0s और 1s की एक सरणी A है, मान लें कि N[i] इंडेक्स A[0] से A[i] तक एक बाइनरी नंबर के रूप में व्याख्या किया गया i-th सबरे है। हमें बूलियन उत्तरों की एक सूची ढूंढनी होगी, जहां उत्तर [i] सत्य है और केवल यदि N[i] 5 से विभाज्य है।
इसलिए, यदि इनपुट [0,1,1,1,1,1] जैसा है, तो आउटपुट [सत्य, असत्य, असत्य, असत्य, सत्य, असत्य]
होगा।इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- लंबाई:=A का आकार
- उत्तर:=आकार की लंबाई की एक सरणी बनाएं, और असत्य से भरें
- नंबर:=ए से प्रत्येक तत्व को जोड़कर एक बाइनरी मान
- 0 से लंबाई के बीच के लिए, करें
- यदि संख्या mod 5 0 के समान है, तो
- उत्तर[लंबाई-i-1] :=सच
- संख्या:=संख्या/2
- यदि संख्या mod 5 0 के समान है, तो
- वापसी उत्तर
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
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]