मान लीजिए कि हमारे पास एक अल्फ़ान्यूमेरिक स्ट्रिंग s है। हमें इसे निम्नलिखित स्थिति के आधार पर क्रमबद्ध करना होगा
-
सभी सॉर्ट किए गए लोअरकेस अक्षरों को अपरकेस अक्षरों से पहले रखा जाएगा।
-
सभी सॉर्ट किए गए अपरकेस अक्षरों को अंकों से पहले रखा जाएगा।
-
सभी क्रमबद्ध विषम अंकों को क्रमबद्ध सम अंकों से पहले रखा जाएगा।
इसलिए, यदि इनपुट s ="HeLlo1234" जैसा है, तो आउटपुट eloHL1324
होगाइसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- फ़ंक्शन f() को परिभाषित करें। इसमें ग लगेगा
- कोड:=0
- यदि c अपर केस में है, तो
- कोड:=10^3
- अन्यथा जब c एक अंक है, तब
- कोड:=10^6
- यदि c का ASCII सम है, तो
- कोड:=10^9
- वापसी कोड + c का ASCII
- मुख्य विधि से निम्न कार्य करें
- l :=s की क्रमबद्ध सूची और f() फ़ंक्शन को कॉल करके प्रत्येक वर्ण c को s में क्रमित करें
- प्रत्येक वर्ण को l में शामिल करें और वापस लौटें
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें
def f(c): code = 0 if c.isupper(): code = 10 ** 3 elif c.isdigit(): code = 10 ** 6 if ord(c) % 2 == 0: code = 10 ** 9 return code + ord(c) def solve(s): l = sorted(s, key=lambda c: f(c)) return ''.join(l) s = "HeLlo1234" print(solve(s))
इनपुट
"HeLlo1234"
आउटपुट
eloHL1324