SPACE - Đếm khoảng trắng 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, PyPy, Python, Ruby, Rust, Scratch, Swift

Cho một chuỗi ký tự chỉ gồm các ký tự chữ cái latinh, chữ số và dấu cách. Một khoảng trống là một đoạn liên tiếp các ký tự trống (dấu cách) có trong chuỗi. Hãy đếm số lượng khoảng trống trong chuỗi đó.

Input

  • Dòng đầu chứa số nguyên dương ~T~ là số chuỗi;
  • ~T~ dòng tiếp theo, mỗi dòng chứa một chuỗi có độ dài không quá ~1000~ ký tự

Giới hạn:

  • ~1 ≤ T ≤ 100~.

Output

  • Gồm ~T~ dòng, mỗi dòng là một số nguyên là số khoảng trống của chuỗi đầu vào.

Sample

Input #1
2
abc   xyz ab
 abc def ghi
Output #1
2
3

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


Bình luận

Please read the guidelines before commenting.



  • 0
    ngonhatnamsun2016  đã bình luận lúc 22, Tháng 1, 2026, 15:01

    bịp thật


  • 0
    ngonhatnamsun2016  đã bình luận lúc 22, Tháng 1, 2026, 15:00

    bịp vl


  • 0
    nhankiettvt  đã bình luận lúc 15, Tháng 1, 2026, 8:02

    EZ NHA AE=))

    #include <bits/stdc++.h>
    using namespace std;
    using ll = long long;
    using ull = unsigned long long;
    
    void run_case()
    {
        string s;
        getline(cin, s);
        int dem=0,done=0;
        for (auto i : s){
            if (i==' '){
                if (!done){
                    dem++;
                    done = 1;
                }
            }
            else{
                done=0;
            }
        }
        cout << dem << "\n";
    }
    
    int main()
    {
        ios::sync_with_stdio(false);
        cin.tie(nullptr);
    
        int t;
        cin >> t;
        cin.ignore();
        while (t--)
            run_case();
        return 0;
    }
    

  • 1
    Dinone369  đã bình luận lúc 8, Tháng 12, 2025, 18:24

    Lụm đi các bé yêu.....

    #include <bits/stdc++.h>
    using namespace std;
    
    int main(){
        ios::sync_with_stdio(false);
        cin.tie(nullptr);
    
        int T;
        cin >> T;
        cin.ignore();
    
        while (T--){
    
            string s;
            getline(cin, s);
            int dem = 0, i = 0;
    
            while (i < (int)s.size()){
                if (s[i] == ' '){
                    do {
                        i += 1;
                    } while (s[i] == ' ');
                    dem++;
                }
                else i += 1;
            }
    
            cout << dem << endl;
        }
    
        return 0;
    }
    

  • -1
    skjafirjmm  đã bình luận lúc 30, Tháng 11, 2025, 14:27

    FULL AC

    include <bits/stdc++.h>

    using namespace std; int main() { ios::syncwithstdio(false); cin.tie(0); int t; cin>>t; cin.ignore(); while(t--){ string s; getline(cin,s); stringstream ss(s); string word; int cnt=0; if(s[0]==' ') cnt++; if(s.back()==' ') cnt++; while(ss>>word){ cnt++; } cnt--; cout<<cnt<<endl; } }


  • 1
    Duong_Thanh_Khiem_L8  đã bình luận lúc 24, Tháng 11, 2025, 16:11

    FULL AC:

    #include <bits/stdc++.h>
    using namespace std;
    
    int main() {
        ios::sync_with_stdio(false);
        cin.tie(nullptr);
    
        int T;
        cin >> T;
        cin.ignore();
    
        while (T--) {
            string s;
            getline(cin, s);
    
            int countSpace = 0;
            bool inSpace = false;
    
            for (int i = 0; i < (int)s.size(); i++) {
                if (s[i] == ' ') {
                    if (inSpace == false) {
                        countSpace++;
                        inSpace = true;
                    }
                }
                else {
                    inSpace = false;
                }
            }
    
            cout << countSpace << "\n";
        }
    
        return 0;
    }
    

    • -1
      ngoclandinh1708  đã bình luận lúc 16, Tháng 12, 2025, 7:44

      thank you bro


  • -3
    Jhanh  đã bình luận lúc 8, Tháng 11, 2025, 9:36

    Mình code bằng C++ như sau: đầu tiên mọi người sẽ tạo biến cnt rồi kiểm tra đầu chuỗi và cuối chuỗi có dấu cách không thì tăng cnt lên. Tiếp theo mọi người dùng stringstream để tách các từ ra rồi tăng cnt theo số lượng từ, cuối cùng là lấy cnt trừ đi 1 là ra kết quả.


  • 1
    BoCow2808  đã bình luận lúc 12, Tháng 9, 2025, 16:06

    **ý tưởng của mình như sau:

    -mình sẽ duyệt từ trái sang phải -trước tiên kiếm tra xem phần tử cuối cùng có phải khoảng trắng không vì không có phần tử nằm bên phải nó -sau đó kiểm tra từ trái sang phải ( s[i],s[i+1]) *với điều kiện là s[i] là khoảng trắng và s[i+1] không phải khoảng trắng. Nếu đúng sẽ +1 vào kết quả cuối cùngcùng vd:

    • abb
    • ab_ +....

  • -3
    mira  đã bình luận lúc 9, Tháng 6, 2025, 11:21

    dếm cái đầu vs cái thứ 3


  • -4
    tongchicao  đã bình luận lúc 26, Tháng 3, 2025, 12:22

    Sao lam dung ma duoc co 1 test vay tr


  • -1
    kietjumper  đã bình luận lúc 15, Tháng 3, 2025, 3:25
    if(s[i] == ' ' && s[i - 1] != ' ')
    {
        cnt++;
    }
    

  • 0
    HHVinh007  đã bình luận lúc 3, Tháng 12, 2024, 3:19

    mấy bồ cứ thử tưởng tượng nếu duyệt mà đụng phải một ký tự space thì mình mở nắp một cái list ra và cho cái space đầu tiên vào, ngay sau đó thì đóng nắp lại, chừng nào vẫn còn đụng phải space thì nắp vẫn đóng để ngăn mấy cái sau chui vô. Sau khi duyệt đến một ký tự không phải space nữa thì mới mở nắp ra lại để đón thêm vào. Gợi ý v thôi, code đi :))


    • -4
      bachlinh  đã bình luận lúc 23, Tháng 1, 2025, 1:50

      bro làm tui đau đầu rồi đó =)))


  • -4
    super_god  đã bình luận lúc 8, Tháng 10, 2024, 2:51

    hello ae


  • -3
    ngusidan123  đã bình luận lúc 10, Tháng 1, 2024, 14:24

    là cái khoảng trắng cuối cùng ấy bạn ví dụ nhập: "a " in ra 1