Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรมเช็คว่า string เป็น subsequence ของตัวอื่นใน C++ . หรือไม่


สมมติว่าเรามี S และ T สองสาย เราต้องตรวจสอบว่า S อยู่หลัง T หรือไม่

ดังนั้น หากอินพุตเป็น S ="abc", T ="adbrcyxd" ผลลัพธ์จะเป็น True

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • ถ้า s เหมือนกับ t แล้ว −

    • คืนความจริง

  • n :=ขนาดของ s, m :=ขนาดของ t

  • เจ :=0

  • สำหรับการเริ่มต้น i :=0 เมื่อ i

    • ถ้า t[j] เหมือนกับ s[i] แล้ว −

      • (เพิ่มขึ้น j โดย 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