เราได้รับสตริง str และสตริงย่อย sub_str ที่มีความยาว 3 เป้าหมายคือการหาจำนวนลำดับย่อย sub_str ใน str ตัวอย่าง “การกระทำ” คือสามครั้งใน “ต้อกระจก” ( ต้อกระจก ต้อกระจก ต้อกระจก )
ให้เราเข้าใจด้วยตัวอย่าง
ป้อนข้อมูล − str=“settlement” sub_str=”set”
ผลผลิต − การนับลำดับของความยาวสามในสตริงที่กำหนดคือ:5
คำอธิบาย − ที่ตามมาจะเป็น −
<ก่อน>1. กำหนดผ่อนผัน,2. ผ่อนปรน,3. se ttlemen t,4. s ettl e ผู้ชาย t,5. ตั้งถิ่นฐาน e n tป้อนข้อมูล − str=“ความรู้” sub_str=”ตอนนี้”
ผลผลิต − การนับลำดับของความยาวสามในสตริงที่กำหนดคือ − 1
คำอธิบาย − ที่ตามมาจะเป็น - รู้หิ้ง
แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้
เราจะสำรวจสตริง str โดยใช้ for loop หาก str[i]==sub_str[0] ใด ๆ ให้เปรียบเทียบอักขระตัวถัดไป sub_str[1] กับ str[ ปัจจุบัน i ถึง i
รับสตริงเป็น str และสตริงย่อยเป็น sub_str
ฟังก์ชัน subset_occurrence(string str, int length, string sub_str) รับสตริงและส่งกลับจำนวน subsequences เช่นเดียวกับ sub_str ใน str
Traverse str ใช้ for loop จาก i=0 ถึง i<ความยาว
หากมี str[i]==sub_str[0] ใด ๆ ให้พบอักขระตัวแรก ตรวจสอบถัดไปโดย j=i+1 ถึง j<ความยาว
หากมี str[j]==sub_str[1] อักขระตัวที่สองตรงกัน ตรวจสอบถัดไปโดย k=j+1 ถึง k<ความยาว
ถ้า str[k]==sub_str[2] จำนวนที่เพิ่มขึ้น
ผลตอบแทนนับเป็นผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -
ตัวอย่าง
#include
ผลลัพธ์
จำนวนลำดับย่อยของความยาวสามในสตริงที่กำหนดคือ:19