मान लीजिए कि हमारे पास n वर्ण के साथ एक स्ट्रिंग S है। एक टेक्स्ट एडिटर पर एक अजीब नियम होता है। इस टेक्स्ट एडिटर का शब्द सुधारक इस तरह से काम करता है कि जब तक शब्द में लगातार दो स्वर हों, यह एक शब्द में पहले स्वर को हटा देता है। यदि शब्द में लगातार दो स्वर न हों, तो इसे सही माना जाता है। हमें S से सही शब्द खोजना है। यहाँ स्वर 'a', 'e', 'i' 'o', 'u' और 'y' हैं।
इसलिए, यदि इनपुट एस ="खराब" जैसा है, तो आउटपुट "पोर" होगा।
कदम
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
n := size of S t := "aeiouy" for initialize i := 1, when i < n, update (increase i by 1), do: if S[i] is in t and S[i - 1] is in t, then: delete ith character from S (decrease i by 1) return S
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
#include <bits/stdc++.h> using namespace std; string solve(string S){ int n = S.size(); string t = "aeiouy"; for (int i = 1; i < n; i++){ if (t.find(S[i]) != -1 && t.find(S[i - 1]) != -1){ S.erase(i, 1); i--; } } return S; } int main(){ string S = "poor"; cout << solve(S) << endl; }
इनपुट
"poor"
आउटपुट
por