अंकों की एक स्ट्रिंग को देखते हुए, हमें इसमें भी सबस्ट्रिंग की गिनती खोजने की जरूरत है। आइए एक उदाहरण देखें।
इनपुट
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