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

จำนวนสตริงย่อยที่มีความยาว n ที่เป็นไปได้จากสตริงที่กำหนดใน C++


เราได้รับสตริง str[] และตัวเลข n เป้าหมายคือการค้นหาสตริงย่อยทั้งหมดของ str[] ที่มีความยาว n หากสตริงคือ "abcde" และ n=3 สตริงย่อยที่มีความยาว 3 คือ "abc", "bcd", "cde" และจำนวนจะเป็น 3

ให้เราเข้าใจด้วยตัวอย่าง

ป้อนข้อมูล − str[] =“คอมพิวเตอร์” n=4

ผลผลิต − จำนวนสตริงย่อยที่มีความยาว n ที่เป็นไปได้จากสตริงที่กำหนดคือ − 5

คำอธิบาย − สตริงย่อยที่มีความยาว 4 ได้แก่:“comp”, “ompu”,”mput”, “pute”, “uter”

ป้อนข้อมูล − str[] =“พัฒนาการ” n=5

ผลผลิต − จำนวนสตริงย่อยของความยาว n ที่เป็นไปได้จากสตริงที่กำหนดคือ − 7

คำอธิบาย − สตริงย่อยที่มีความยาว 5 ได้แก่ "devel", "evelo", "velop", "elopm", "lopme", "opmen", "pment"

แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้

หากเราใช้ความยาวของสตริง str[] เป็น L การนับสตริงย่อยของความยาว n ภายใน str[] คือ Ln+1 หากสตริงคือ "abcdefghi" และ n คือ 4 สตริงย่อยจะเป็น "abcd", "bcde", "cdef", "defg", "efgh", "fghi" นับเป็น 6 9-4+1=6 ด้วย

  • ใช้สตริง str.

  • ใช้ n เป็นจำนวนเต็ม

  • ฟังก์ชัน possible_substring(string str, int length, int n) รับค่า string, it's length, n และคืนค่าจำนวนสตริงย่อยของ str ที่มีความยาว n

  • นับตัวแปร

  • ตั้งนับ =length-n+1.

  • ผลตอบแทนนับเป็นผลลัพธ์ในตอนท้าย

ตัวอย่าง

#include <bits/stdc++.h>
using namespace std;
int possible_substring(string str, int length, int n){
   int count = length - n + 1;
   return count;
}
int main(){
   string str = "learning";
   int length = str.length();
   int n = 2;
   cout<<"Count of substrings of length n possible from the given string are: "<<possible_substring(str, length, n);
   return 0;
}

ผลลัพธ์

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

Count of substrings of length n possible from the given string are: 7