मान लीजिए हमारे पास दो स्ट्रिंग्स S और T हैं। हमें जांचना है कि क्या S, T की उपअनुक्रम है या नहीं।
इसलिए, यदि इनपुट S = "abc", T = "adbrcyxd" जैसा है, तो आउटपुट True होगा।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
यदि s, t के समान है, तो -
true लौटाएं
n := s का आकार, m := t का आकार
j := 0
i := 0 से आरंभ करें, जब i < n, अपडेट करें (i को 1 से बढ़ाएं), करें -
यदि t[j], s[i] के समान है, तो -
(j को 1 से बढ़ाएं)
यदि j, t के आकार के समान है, तो -
true लौटाएं
false लौटाएं
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
#include <bits/stdc++.h> using namespace std; class Solution { public: bool solve(string t, string s) { if(s == t) return true; int n = s.size(); int m = t.size(); int j = 0; for(int i = 0; i < n; i++){ if(t[j] == s[i]) j++; if(j == t.size()) return true; } return false; } }; main(){ Solution ob; string S = "abc", T = "adbrcyxd"; cout << ob.solve(S, T); } इनपुट
"abc", "adbrcyxd"
आउटपुट
1