ধরুন আমাদের একটি মান 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']