DEMSO - Đếm số trong chuỗi

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift

Cho xâu ký tự ~s~ chỉ gồm các chữ cái latin và chữ số. Ta gọi một số trong xâu ~s~ là một dãy các ký tự số liên tiếp (có thể bắt đầu bằng ký tự số 0 ). Hãy đếm số lượng số xuất hiện trong xâu ~s~.

Input

  • Gồm một dòng duy nhất chứa xâu ~s~.

Giới hạn:

  • ~80\%~ số điểm có độ dài xâu s không quá ~1000~ ký tự;
  • ~20\%~ số điểm có độ dài xâu s không quá ~10^6~ ký tự.

Output

  • Một dòng duy nhất ghi số nguyên là số lượng số xuất hiện trong xâu ~s~.

Sample

Input #1
A0123b345
Output #1
2

Hint

Xét #1:

  • Các số xuất hiện trong xâu A0123b345 là ~0123~ và ~345~.

Problem source: Chuyên Sơn La Online Judge


Bình luận

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



  • 0
    gtmailong  đã bình luận lúc 23, Tháng 4, 2024, 22:00

    full ac

    #include <iostream>
    
    using namespace std;
    
    int main () {
        int dem = 0;
        string s;
        cin >> s;
        bool ok = true;
        for (char x : s) {
            if (x >= '0' && x <= '9' && ok){
                dem++;
                ok = false;
            }
            if (x < '0' || x > '9') ok = true;
        }
        cout << dem;
        return 0;
    }
    

  • 0
    hoangvanthong  đã bình luận lúc 5, Tháng 3, 2024, 14:08

    include <iostream>

    int main() { std::string str; std::cout << "Nhập chuỗi: "; std::cin >> str;

    char prevChar = '\0';
    int count = 0;
    int totalCount = 0;
    
    for (char c : str) {
        if (c >= '0' && c <= '9') {
            if (c == prevChar) {
                count++;
            } else {
                if (count > 0) {
                    totalCount++;
                }
                count = 1;
                prevChar = c;
            }
        } else {
            if (count > 0) {
                totalCount++;
                count = 0;
            }
            prevChar = '\0';
        }
    }
    
    if (count > 0) {
        totalCount++;
    }
    
    std::cout << "Số lần xuất hiện của các ký tự số liên tiếp là: " << totalCount << std::endl;
    
    return 0;
    

    }