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

นับลำดับของความยาวสามในสตริงที่กำหนดใน C++


เราได้รับสตริง 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ใช้เนมสเปซ std;int subset_occurrence (สตริง str, int length, string sub_str){ จำนวน int =0; สำหรับ (int i=0; i<ความยาว; i++){ if (str[i]==sub_str[0]){ สำหรับ (int j=i+1; j 

ผลลัพธ์

หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -

จำนวนลำดับย่อยของความยาวสามในสตริงที่กำหนดคือ:19