Hướng dẫn giải của STR07: Số từ trong xâu


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

Cho xâu ~S~ gồm cả khoảng trắng. Một từ là dãy kí tự liên tiếp không chứa khoảng trắng. Cần đếm số từ trong xâu.

Cách làm
  • Dùng getline để đọc cả dòng.
  • Mỗi từ bắt đầu tại một kí tự không phải khoảng trắng mà đứng ngay sau một khoảng trắng, hoặc đứng ở đầu xâu.
  • Duyệt xâu và đếm các vị trí như vậy.
  • Cách này vẫn đúng khi xâu có nhiều khoảng trắng liên tiếp hoặc khoảng trắng ở đầu, cuối xâu.
#include <bits/stdc++.h>
using namespace std;

int main() {
    string s;
    // Đọc cả dòng vì xâu có khoảng trắng
    getline(cin, s);
    int dem = 0;
    // Mỗi từ bắt đầu tại kí tự không phải khoảng trắng mà đứng ngay sau một khoảng trắng (hoặc đầu xâu)
    for (int i = 0; i < (int)s.length(); i++) {
        if (s[i] != ' ' && (i == 0 || s[i - 1] == ' ')) {
            dem++;
        }
    }
    cout << dem << "\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.