অঙ্কের একটি স্ট্রিং দেওয়া, আমাদের এটিতে জোড় সাবস্ট্রিংগুলির গণনা খুঁজে বের করতে হবে। আসুন একটি উদাহরণ দেখি।
ইনপুট
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