इस समस्या को स्ट्रिंग को उल्टा करके, बदले जाने वाले स्ट्रिंग को उलट कर, स्ट्रिंग के रिवर्स स्ट्रिंग के साथ प्रतिस्थापित करके और अंत में परिणाम प्राप्त करने के लिए स्ट्रिंग को उलट कर हल किया जा सकता है।
आप साधारण स्लाइसिंग नोटेशन द्वारा स्ट्रिंग्स को उल्टा कर सकते हैं - [::-1]। स्ट्रिंग को बदलने के लिए आप str.replace (पुराना, नया, गिनती) का उपयोग कर सकते हैं। उदाहरण के लिए,
def rreplace(s, old, new): return (s[::-1].replace(old[::-1],new[::-1], 1))[::-1] rreplace('Helloworld, hello world, hello world', 'hello', 'hi')
यह आउटपुट देगा:
'Hello world,hello world, hi world'
एक और तरीका जिसके द्वारा आप ऐसा कर सकते हैं, पुराने स्ट्रिंग पर एक बार स्ट्रिंग को रिवर्स स्प्लिट करना और नई स्ट्रिंग के साथ सूची में शामिल होना है। उदाहरण के लिए,
def rreplace(s, old, new): li = s.rsplit(old, 1) #Split only once return new.join(li) rreplace('Helloworld, hello world, hello world', 'hello', 'hi')
यह आउटपुट देगा:
'Hello world,hello world, hi world'