Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

จำนวนสตริงย่อยคู่ในสตริงของตัวเลขใน C++


ด้วยสตริงของตัวเลข เราจำเป็นต้องค้นหาจำนวนสตริงย่อยที่เท่ากันในนั้น มาดูตัวอย่างกัน

ป้อนข้อมูล

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