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

C++에서 이웃이 같은 문자 수 계산

<시간/>

예를 들어 str이 있는 문자열이 주어지고 작업은 동일한 이웃을 갖는 문자열 str의 문자 수를 계산하는 것입니다. 여기에는 문자열에서 문자의 왼쪽과 오른쪽이 모두 포함됩니다. 또한 이 시나리오에서 문자열의 첫 번째 문자와 마지막 문자는 인접한 문자가 하나만 있기 때문에 항상 고려됩니다.

Input − string str = “poiot”
Output − count is 3

설명 − 주어진 문자열에서 p, t 및 i는 동일한 이웃을 가지므로 개수는 3으로 증가합니다.

Input − string str = “nitihig”
Output − count is 4

설명 − 주어진 문자열에서 n, t, h 및 g는 동일한 이웃을 가지므로 개수는 4로 증가합니다.

아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.

  • 변수에 문자열을 입력한다고 가정해 봅시다. str

  • 공백을 포함한 문자열의 문자 수에 따라 정수 값을 반환하는 length() 함수를 사용하여 문자열 str의 길이를 계산합니다.

  • 문자열의 길이가 2보다 작거나 같으면 모두 계산되므로 문자열의 길이로 개수를 반환합니다.

  • 문자열의 길이가 2보다 크면 카운트를 2로 초기화합니다.

  • 이제 i가 (length-1)보다 작을 때까지 i부터 1까지 루프를 시작합니다.

  • 루프 내부에서 (str[i-1] =str[i+1])인지 확인한 다음 카운트를 1 증가시킵니다.

  • 이제 count의 총 값을 반환합니다.

  • 결과를 인쇄하십시오.

예시

#include <iostream>
using namespace std;
// To count the characters
int countChar(string st){
   int size = st.length();
   if (size <= 2){
      return size;
   }
   int result = 2;
   // Traverse the string
   for (int i = 1; i < size - 1; i++){
      // Increment the count by 1 if the previous
      // and next character is same
      if (st[i - 1] == st[i + 1]){
         result++;
      }
   }
   // Return result
   return result;
}
int main(){
   string st = "poiot";
   cout <<"count is " <<countChar(st);
   return 0;
}

출력

위의 코드를 실행하면 다음 출력이 생성됩니다.

count is 3