मान लीजिए कि हमारे पास एक स्ट्रिंग है जो एक पैलिंड्रोम है। हमें एक चरित्र को इस तरह बदलना होगा कि s अब पैलिंड्रोम नहीं है और यह शब्दावली की दृष्टि से सबसे छोटा है।
इसलिए, यदि इनपुट s ="स्तर" जैसा है, तो आउटपुट "aevel" होगा, क्योंकि हम पहले "l" को "a" में बदल सकते हैं ताकि लेक्सिकोग्राफ़िक रूप से सबसे छोटी स्ट्रिंग जो पैलिंड्रोम नहीं है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- मैं के लिए 0 से पूर्णांक भाग (s / 2 का आकार) में, do
- यदि s[i] "a" के समान नहीं है, तो
- s :=s में सभी वर्णों की एक नई सूची
- s[i] :="a"
- सभी वर्णों को s में शामिल करें और वापस लौटें
- यदि s[i] "a" के समान नहीं है, तो
- s :=s में सभी वर्णों की एक नई सूची
- एस का अंतिम तत्व:="बी"
- सभी वर्णों को s में शामिल करें और वापस लौटें
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
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