मान लीजिए हमारे पास दो तार S और T हैं। हमें यह जांचना है कि S, T का अनुगमन है या नहीं।
इसलिए, यदि इनपुट S ="abc", T ="adbrcyxd" जैसा है, तो आउटपुट सही होगा
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
यदि s, t के समान है, तो -
-
सही लौटें
-
-
n :=s का आकार, m :=t का आकार
-
जे:=0
-
इनिशियलाइज़ i:=0 के लिए, जब i
-
यदि t[j] s[i] के समान है, तो -
-
(जम्मू को 1 से बढ़ाएं)
-
-
यदि j, t के आकार के समान है, तो -
-
सही लौटें
-
-
-
झूठी वापसी
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
#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