ด้วยสตริงของตัวเลข เราจำเป็นต้องค้นหาจำนวนสตริงย่อยที่เท่ากันในนั้น มาดูตัวอย่างกัน
ป้อนข้อมูล
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