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

ค้นหาจำนวนสตริงย่อยของสตริงโดยใช้ C++


ในบทความนี้ คุณจะได้เรียนรู้เกี่ยวกับวิธีการค้นหาจำนวนสตริงย่อย (ไม่ว่าง) ที่คุณสามารถสร้างในสตริงที่กำหนดได้

ค้นหาจำนวนสตริงย่อยของสตริงโดยใช้ C++

Input : string = “moon”
Output : 10
Explanation: Substrings are ‘m’, ‘o’, ‘o’, ‘n’, ‘mo’, ‘oo’, ‘on’, ‘moo’, ‘oon’ and ‘moon’.

Input : string = “yellow”
Output : 21

แนวทางในการหาทางออก

ให้ความยาวของสตริงเป็น n ดังนั้นเมื่อดูตัวอย่างข้างต้น เราเข้าใจว่าในการหาจำนวนสตริงย่อยที่เป็นไปได้ทั้งหมด เราจำเป็นต้องเพิ่มสตริงย่อยที่มีความยาว n, (n-1), (n-2), (n -3), (n-4),......2, 1.

จำนวนสตริงย่อยทั้งหมด =n + (n - 1) + (n - 2) + (n - 3) + (n - 4) + ……. + 2 + 1.

=n * (n + 1) / 2

ตอนนี้เรามีสูตรสำหรับการประเมินจำนวนสตริงย่อย โดยที่ n คือความยาวของสตริงที่กำหนด

โค้ด C++ สำหรับแนวทางด้านบน

นี่คือไวยากรณ์ C++ ที่เราสามารถใช้เป็นอินพุตเพื่อแก้ปัญหาที่กำหนดได้ -

ตัวอย่าง

#include<bits/stdc++.h>
using namespace std;
int main () {
   string str = "yellow";
   // finding the length of string
   int n = str.length ();
   // calculating result from formula
   int number_of_strings = n * (n + 1) / 2;
   cout << "Number of substrings of a string : " << number_of_strings;
   return 0;
}

ผลลัพธ์

Number of substrings of a string: 21

คำอธิบายของรหัส

นี่เป็นแนวทางเชิงบวกและตรงไปตรงมาในการค้นหาจำนวนสตริงย่อยที่เป็นไปได้จากสตริงที่ระบุ

ประการแรก ในโค้ดนี้ เราจะหาความยาวของสตริงที่กำหนดจากฟังก์ชัน .length() และใส่ค่านั้นลงในสูตรที่เราได้รับด้านบน โดยพิมพ์ผลลัพธ์ที่เก็บไว้ในตัวแปรผลลัพธ์

บทสรุป

ในบทความนี้ เราได้อธิบายวิธีการหาจำนวนสตริงย่อยในสตริง โดยในขั้นแรกเราจะหาสูตรในการค้นหาจำนวนสตริงย่อยที่เป็นไปได้ทั้งหมด และรับผลลัพธ์โดยใช้สูตรจากความยาวของสตริง เราสามารถเขียนโปรแกรมเดียวกันในภาษาอื่นๆ เช่น C, java, python และภาษาอื่นๆ เราหวังว่าคุณจะพบว่าบทความนี้มีประโยชน์