मान लीजिए हमारे पास एक गोल पार्सर है जो दी गई स्ट्रिंग कमांड की व्याख्या कर सकता है। एक कमांड में निम्नलिखित होते हैं:
- एक वर्णमाला "G"
- ओपनिंग और क्लोजिंग पैरेंथेसिस "()"
- और/या "(al)" कुछ क्रम में
हमारा गोल पार्सर "G" को स्ट्रिंग "G" के रूप में, "()" को "o" के रूप में, और "(al)" को स्ट्रिंग "al" के रूप में व्याख्या करेगा। अंत में व्याख्या की गई स्ट्रिंग्स को मूल क्रम में जोड़ दिया जाता है। इसलिए यदि हमारे पास स्ट्रिंग कमांड है, तो हमें कमांड की गोल पार्सर की व्याख्या ढूंढनी है।
इसलिए, यदि इनपुट है: command = "G()()()(al)(al)", तो आउटपुट "Goooalal" होगा।
हल करने के चरण
- s := खाली स्ट्रिंग
- i को 0 से कमांड के आकार - 1 तक के लिए:
- यदि command[i] "(" के समान नहीं है और ")" के समान नहीं है, तो s := s + command[i]
- यदि command[i] "(" के समान है और command[i+1] ")" के समान है और i+1 < len(command), तो s := s + 'o'
- यदि command[i] "(" के समान है, तो अगले इटरेशन पर जाएं
- यदि command[i] ")" के समान है, तो अगले इटरेशन पर जाएं
- s वापस करें
उदाहरण (Python)
def solve(command):
s = ""
for i in range(len(command)):
if command[i] != "(" and command[i] != ")":
s += command[i]
if command[i] == "(" and command[i+1] == ")" and i+1 < len(command):
s += 'o'
if command[i] == "(":
continue
if command[i] == ")":
continue
return s
command = "G()()()(al)(al)"
print(solve(command))
इनपुट
"G()()()(al)(al)"
आउटपुट
Goooalal