이 기사에서는 주어진 문자열에서 형성할 수 있는 부분 문자열(비어 있지 않은)의 수를 찾는 접근 방식에 대해 배울 것입니다.
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 및 기타 언어와 같은 다른 언어로 동일한 프로그램을 작성할 수 있습니다. 이 기사가 도움이 되기를 바랍니다.