मान लीजिए कि हमारे पास एक मान 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']