숫자 문자열이 주어지면 그 안에 있는 짝수 부분 문자열의 개수를 찾아야 합니다. 예를 들어 보겠습니다.
입력
num = "1234"
출력
6
주어진 문자열로 구성할 수 있는 짝수 부분 문자열은
2 12 4 34 234 1234
알고리즘
-
문자열을 숫자로 초기화합니다.
-
개수를 0으로 초기화합니다.
-
문자열을 반복합니다.
-
문자 0을 빼서 현재 숫자를 가져옵니다. 현재 문자 숫자에서.
-
숫자가 짝수인지 아닌지 확인하세요.
-
현재 숫자가 짝수이면 숫자에 1을 더한 인덱스를 추가합니다.
-
- 카운트를 반환합니다.
구현
다음은 위의 알고리즘을 C++로 구현한 것입니다.
#include<bits/stdc++.h>
using namespace std;
int getEvenSubstringsCount(char str[]) {
int len = strlen(str), count = 0;
for (int i = 0; i < len; i++) {
int currentDigit = str[i] - '0';
if (currentDigit % 2 == 0) {
count += i + 1;
}
}
return count;
}
int main() {
char str[] = "12345678";
cout << getEvenSubstringsCount(str) << endl;
return 0;
} 출력
위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.
20