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 및 기타 언어와 같은 다른 언어로 동일한 프로그램을 작성할 수 있습니다. 이 기사가 도움이 되기를 바랍니다.