Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 주어진 문자열에서 가능한 길이가 n인 부분 문자열의 개수

<시간/>

문자열 str[]과 숫자 n이 주어집니다. 목표는 길이가 n인 str[]의 모든 부분 문자열을 찾는 것입니다. string이 "abcde"이고 n=3이면 길이가 3인 부분 문자열은 "abc", "bcd", "cde"이고 count는 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로 취하면 str[] 내부의 길이가 n인 부분 문자열의 개수는 Ln+1입니다. 문자열이 "abcdefghi"이고 n이 4이면 하위 문자열은 "abcd", "bcde", "cdef", "defg", "efgh", "fghi"가 됩니다. 개수는 6입니다. 또한 9-4+1=6입니다.

  • 문자열을 가져옵니다.

  • n을 정수로 사용합니다.

  • 함수 possible_substring(string str, int length, int n)은 문자열, 길이 n을 취하고 길이가 n인 str의 부분 문자열 개수를 반환합니다.

  • 변수 개수를 가져오세요.

  • 세트 수 =길이-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