DEMTU - Bé học tiếng Anh

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

Bé Na rất thích học tiếng Anh. Một hôm, trong lúc đọc một đoạn văn tiếng Anh, Bé Na muốn biết đoạn văn mà mình phải đọc có bao nhiêu từ, bạn hãy lập một chương trình trình giúp bạn Na làm việc này nhé.

Cho một đoạn văn bản là một xâu ký tự chỉ gồm các chữ cái trong bảng chữ cái la-tinh (‘A’…’Z’, ‘a’…’z’) và các dấu cách (‘ ‘). Mỗi từ là một dãy chữ cái liên tiếp không chứa dấu cách. Hai từ được phân cách bởi một hoặc nhiều dấu cách. Hãy đếm xem đoạn văn đó có bao nhiêu từ.

Input

  • Một xâu ký tự chỉ chứa các ký tự chữ cái la-tinh (‘A’…’Z’, ‘a’…’z’) và dấu cách (ghi trên một dòng).

Giới hạn:

  • ~40\%~ số test (tương ứng với ~40\%~ số điểm của bài toán) có dữ liệu vào là xâu có không quá ~255~ ký tự và các từ được phân cách nhau bởi duy nhất một dấu cách;
  • ~40\%~ số test khác (tương ứng với ~40\%~ số điểm của bài toán) có dữ liệu vào là xâu có không quá ~255~ ký tự và các từ được phân cách nhau bởi ít nhất một dấu cách;
  • ~20\%~ số test còn lại (tương ứng với ~20\%~ số điểm của bài toán) có dữ liệu vào là xâu có không quá ~10^5~ ký tự và các từ được phân cách nhau bởi ít nhất một dấu cách.

Output

  • Một số nguyên duy nhất là số từ trong xâu ký tự đã cho.

Sample

Input #1
Thank you very much for your letter which arrived a few days ago
Output #1
13
Input #2
Thank    you    very    much
Output #2
4

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


Bình luận

Please read the guidelines before commenting.



  • 1
    mducc  đã bình luận lúc 23, Tháng 4, 2026, 14:35

    spoil!

    Ý tưởng:
    Đếm số lần chuyển từ dấu cách → chữ cái. Kết quả là số từ.
    

    code tham khảo (c++)

        #include <bits/stdc++.h>
    
        using namespace std;
    
        int main() {
            ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);
    
            string s;
            getline(cin, s);
            int d = 0, ans = 0;
            for (char c : s)
                if (c != ' ') d = 1;
                else if (d)  ans++, d = 0;
    
            if (d) ans++;
            cout << ans;
        }
    

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

    FULL AC, DÙNG STRINGSTREAM CHO NHÀN NHA AE=))

    #include <bits/stdc++.h>
    using namespace std;
    using ll = long long;
    using ull = unsigned long long;
    
    int main()
    {
        ios::sync_with_stdio(false);
        cin.tie(nullptr);
        string s; getline(cin,s);
        stringstream ss(s);
        int dem=0;
        string tmp;
        while (ss >> tmp) dem++;
        cout << dem;
        return 0;
    }
    

  • 1
    nguyenduchaikm1  đã bình luận lúc 28, Tháng 12, 2025, 12:32

    Test 3 là gì vậy mng


    • 0
      phihongnguyen0809  đã bình luận lúc 11, Tháng 3, 2026, 15:06

      test 3 là sau khi cắt bỏ khoảng trắng giữa các từ còn lại là 1 nhưng vì chuỗi rỗng nên kết quả bằng 0 bạn


  • 3
    Dinone369  đã bình luận lúc 8, Tháng 12, 2025, 19:25

    include <bits/stdc++.h>

    using namespace std;
    
    int main(){
        ios::sync_with_stdio(false);
        cin.tie(nullptr);
    
        string s;
        getline(cin, s);
    
        int dem = 0, i = 0;
    
        while (i < (int)s.size()){
            if (s[i] != ' '){
                do {
                    i += 1;
                } while (i < (int)s.size() && s[i] != ' ');
                dem++;
            }
            else i += 1;
        }
    
        cout << dem;
        return 0;
    }
    

  • 0
    lehaan1234  đã bình luận lúc 30, Tháng 11, 2025, 6:46

    dùng stringstream cũng đc bà con nhen :00 #include<bits/stdc++.h> using namespace std; int main () { string vanban; getline(cin,vanban); stringstream ss(vanban); long long dem =0; string word; while (ss>>word) { ++dem; } cout << dem; }


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

    Có ai làm được hết các bài tập trong cái web này không ạ, vi dụ như là làm hết 30 trang chẳng hạn=))


  • 0
    vanquan321  đã bình luận lúc 28, Tháng 10, 2025, 11:15

    ai biết làm thì chỉ mình với


    • 1
      7_ThanTrongHieu  đã bình luận lúc 6, Tháng 11, 2025, 9:12

      Dùng stringstream để lưu chuỗi thành dòng, sau đó chạy while(ss >> word) để tách ra là được bạn nhé


  • 0
    rukiku824  đã bình luận lúc 2, Tháng 10, 2025, 3:04

    Ý tưởng, đếm khoảng trống trong kí tự rồi cộng 1 vào kết quả


  • 0
    anhtuanhococde  đã bình luận lúc 2, Tháng 6, 2025, 3:30

    test 15 là gì v


  • 2
    lenamlong  đã bình luận lúc 5, Tháng 5, 2024, 3:44

    bạn phải Ctrl+C để dừng việc nhập lại vì bạn cin>>s