मान लीजिए कि हमारे पास एक स्ट्रिंग और सीमांकक का एक सेट है, हमें स्ट्रिंग में शब्दों को उल्टा करना होगा, जबकि सीमांकक के सापेक्ष क्रम को नहीं बदला जाना चाहिए।
इसलिए, यदि इनपुट s ="Computer/Network:Internet|tutorialspoint" delims =["/", ":", '|'] जैसा है, तो आउटपुट होगा Tutorialspoint/Internet:Network|Computer
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:
शब्द:=एक नई सूची
उत्तर:=रिक्त स्ट्रिंग
अस्थायी:=एक नक्शा जहां
सीमांकक वर्णों को छोड़कर शब्दों को अलग करें और उन्हें शब्द सरणी में डालें
अलग-अलग शब्द जब वर्ण सीमांकक में हों तो उन्हें उत्तर में जोड़ें,
अन्यथा शब्द सरणी से शब्द को उल्टा पढ़ें और उत्तर में जोड़ें
वापसी उत्तर
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें:
उदाहरण
from itertools import groupby class Solution: def solve(self, sentence, delimiters): words = [] ans = "" for k, g in groupby(sentence, lambda x: x in delimiters): if not k: words.append("".join(g)) for k, g in groupby(sentence, lambda x: x in delimiters): if k: ans += "".join(g) else: ans += words.pop() return ans ob = Solution() s = "Computer/Network:Internet|tutorialspoint" delims = ["/", ":", '|'] print(ob.solve(s, delims))
इनपुट
"Computer/Network:Internet|tutorialspoint", ["/", ":", '|']
आउटपुट
tutorialspoint/Internet:Network|Computer