Hướng dẫn giải của Đếm kí tự chữ số


Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.

Hướng dẫn giải

Đếm số ký tự chữ số có trong xâu S (xâu có thể chứa dấu cách nên phải đọc cả dòng). Chỉ cần duyệt xâu một lần, không có cách vét cạn nào khác đáng kể nên bài chỉ viết 1 sub.

Sub 1: Duyệt một lần — ~O(n)~

Duyệt từng ký tự của xâu, nếu ký tự nằm trong khoảng '0' đến '9' thì tăng biến đếm. Đạt 8/8 test.

#include <bits/stdc++.h>
using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    if (fopen("CNUM.INP", "r")) { freopen("CNUM.INP", "r", stdin); freopen("CNUM.OUT", "w", stdout); }

    // Xâu có thể chứa dấu cách nên đọc cả dòng
    string st;
    getline(cin, st);

    // Duyệt từng ký tự, đếm ký tự chữ số '0'..'9'
    long long cnt = 0;
    for (char c : st)
        if (c >= '0' && c <= '9') cnt++;

    cout << cnt << "\n";
    return 0;
}

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.