ในบทความนี้ คุณจะได้เรียนรู้เกี่ยวกับวิธีการค้นหาจำนวนสตริงย่อย (ไม่ว่าง) ที่คุณสามารถสร้างในสตริงที่กำหนดได้
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 และภาษาอื่นๆ เราหวังว่าคุณจะพบว่าบทความนี้มีประโยชน์