예를 들어 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