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