मान लीजिए हमारे पास एक स्ट्रिंग s है जो पैलिंड्रोम है। हमें एक वर्ण बदलना है ताकि s अब पैलिंड्रोम न रहे और यह लेक्सिकोग्राफिकली सबसे छोटी हो।
उदाहरण के लिए, यदि इनपुट s = "level" है, तो आउटपुट "aevel" होगा, क्योंकि हम पहले "l" को "a" में बदलकर लेक्सिकोग्राफिकली सबसे छोटी स्ट्रिंग प्राप्त कर सकते हैं जो पैलिंड्रोम नहीं है।
समाधान दृष्टिकोण
इसे हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे:
iको 0 सेlen(s)//2तक:- यदि
s[i] != 'a':sको वर्णों की सूची में बदलेंs[i] := 'a'- सभी वर्णों को जोड़कर लौटाएं
- यदि
- यदि सभी पहले आधे 'a' हैं:
sको सूची में बदलें- अंतिम वर्ण को
'b'बनाएं - जोड़कर लौटाएं
उदाहरण कोड
class Solution:
def solve(self, s):
for i in range(len(s)//2):
if s[i] != "a":
s = list(s)
s[i] = "a"
return "".join(s)
s = list(s)
s[-1] = "b"
return "".join(s)
ob = Solution()
s = "level"
print(ob.solve(s))इनपुट
"level"
आउटपुट
aevel