ধরুন আমাদের একটি মান n আছে। আমাদের দৈর্ঘ্য n এর সমস্ত উলটো সংখ্যা খুঁজে বের করতে হবে। যেহেতু আমরা গিঁট দিয়েছি উলটো সংখ্যাটি এমন একটি যা 180 ডিগ্রি উল্টালে একই দেখায়।
সুতরাং, যদি ইনপুট n =2 এর মত হয়, তাহলে আউটপুট হবে ['11', '69', '88', '96']।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
একটি ফাংশন মিডল() সংজ্ঞায়িত করুন। এটি x
লাগবে -
যদি x 0 হয়, তাহলে
-
একটি ফাঁকা স্ট্রিং এর ফিরতি তালিকা
-
-
যদি x 1 এর মত হয়, তাহলে
-
0, 1, 8
উপাদানগুলির একটি নতুন তালিকা ফেরত দিন
-
-
ret :=একটি নতুন তালিকা
-
মধ্য :=মধ্যম(x − 2)
-
মাঝখানে প্রতিটি মিটারের জন্য, করুন
-
যদি x n এর মত না হয়, তাহলে
-
ret এর শেষে সন্নিবেশ ("0" concatenate m concatenate "0")
-
-
ret-এর শেষে সন্নিবেশ করুন ("1" concatenate m concatenate "1")
-
ret-এর শেষে সন্নিবেশ করুন ("6" concatenate m concatenate "9")
-
ret-এর শেষে সন্নিবেশ করুন ("8" concatenate m concatenate "8")
-
ret-এর শেষে সন্নিবেশ ("9" concatenate m concatenate "6")
-
-
রিটার্ন রিটার্ন
-
প্রধান পদ্ধতি থেকে, নিম্নলিখিতগুলি করুন -
-
যদি n 0 হয়, তাহলে
-
একটি নতুন তালিকা ফেরত দিন
-
-
অন্যথায় মধ্যম(n)
এর সাজানো তালিকা ফেরত দিন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
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']