मान लीजिए कि हमारे पास एक मान n है। हमें लंबाई n के सभी उल्टे अंक ज्ञात करने हैं। जैसा कि हम गाँठ लगाते हैं, उल्टा नंबर वह होता है जो 180 डिग्री फ़्लिप करने पर समान दिखाई देता है।
इसलिए, यदि इनपुट n =2 जैसा है, तो आउटपुट ['11', '69', '88', '96'] होगा।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
एक फ़ंक्शन मध्य() को परिभाषित करें। इसमें x लगेगा
-
अगर x 0 है, तो
-
रिक्त स्ट्रिंग की वापसी सूची
-
-
अगर x 1 के समान है, तो
-
0, 1, 8 तत्वों की एक नई सूची लौटाएं
-
-
ret :=एक नई सूची
-
मध्य:=मध्य(x - 2)
-
बीच में प्रत्येक मीटर के लिए करें
-
यदि x, n के समान नहीं है, तो
-
रिट के अंत में डालें ("0" कॉन्सटेनेट एम कॉन्टेनेट "0")
-
-
रिट के अंत में डालें ("1" concatenate m concatenate "1")
-
रिट के अंत में डालें ("6" concatenate m concatenate "9")
-
रिट के अंत में डालें ("8" concatenate m concatenate "8")
-
रिट के अंत में इन्सर्ट ("9" कॉन्कैनेट एम कॉन्कैनेट "6") करें
-
-
वापसी रिट
-
मुख्य विधि से, निम्न कार्य करें -
-
अगर n 0 है, तो
-
एक नई सूची लौटाएं
-
-
अन्यथा मध्य (एन) की क्रमबद्ध सूची लौटाएं
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
class Solution: def solve(self, n): if not n: return [] def middle(x=n): if not x: return [""] if x == 1: return list("018") ret = [] mid = middle(x - 2) for m in mid: if x != n: ret.append("0" + m + "0") ret.append("1" + m + "1") ret.append("6" + m + "9") ret.append("8" + m + "8") ret.append("9" + m + "6") return ret return sorted(middle()) ob = Solution() print(ob.solve(2))
इनपुट
2
आउटपुट
['11', '69', '88', '96']