สมมติว่าเรามีสตริง 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