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

รหัส C ++ เพื่อนับจำนวนสตริงย่อยของสตริงตัวเลข


สมมติว่าเรามีสตริง S ที่มี n หลัก สตริงย่อยของ S ถูกกล่าวว่าเป็นแม้ว่าตัวเลขที่แสดงโดยสตริงนี้จะเป็นเลขคู่ด้วย เราต้องหาจำนวนคู่ของสตริงย่อยของ S.

ดังนั้น หากอินพุตเป็นเหมือน S ="1234" ผลลัพธ์จะเป็น 6 เนื่องจากสตริงย่อยคือ 2, 4, 12,34, 234, 1234

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

a := 0
n := size of S
for initialize i := 0, when i < n, update (increase i by 1), do:
   if S[i] mod 2 is same as 0, then:
      a := a + i + 1
return a

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

#include <bits/stdc++.h>
using namespace std;
int solve(string S){
   int a = 0;
   int n = S.size();
   for (int i = 0; i < n; i++){
      if (S[i] % 2 == 0){
         a += i + 1;
      }
   }
   return a;
}
int main(){
   string S = "1234";
   cout << solve(S) << endl;
}

อินพุต

1234

ผลลัพธ์

6