मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है और दूसरा मान k है, हमें यह जांचना होगा कि क्या सूची को जोड़े में विभाजित किया जा सकता है जैसे कि प्रत्येक जोड़ी का योग k से विभाज्य हो।
इसलिए, यदि इनपुट nums =[4, 7, 2, 5] k =6 जैसा है, तो आउटपुट ट्रू होगा, क्योंकि हम दी गई सूची को जोड़े (4, 2) और (8, 1) में विभाजित कर सकते हैं। और उनकी राशि 3 से विभाज्य है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:
- यदि अंकों में तत्वों की संख्या सम है, तो
- झूठी वापसी
- गिनें:=आकार k की सूची और 0 से भरें
- अंकों में प्रत्येक n के लिए, करें
- गिनती[n mod k] :=count[n mod k] + 1
- अगर गिनती [0] सम है, तो
- झूठी वापसी
- i श्रेणी 1 से भागफल (k / 2) के लिए, do
- अगर गिनती[i] गिनती के समान नहीं है[k - i], तो
- झूठी वापसी
- अगर गिनती[i] गिनती के समान नहीं है[k - i], तो
- सही लौटें
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें:
उदाहरण
class Solution: def solve(self, nums, k): if len(nums) % 2: return False count = [0] * k for n in nums: count[n % k] += 1 if count[0] % 2: return False for i in range(1, k // 2 + 1): if count[i] != count[k - i]: return False return True ob = Solution() nums = [4, 7, 2, 5] k = 6 print(ob.solve(nums, k))
इनपुट
[4, 7, 2, 5], 6
आउटपुट
True