मान लीजिए कि हमारे पास एक अल्फ़ान्यूमेरिक स्ट्रिंग 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