Hướng dẫn giải của Tìm từ dài nhất
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.
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.
// Tìm từ dài nhất trong chuỗi
#include <iostream>
#include <sstream>
using namespace std;
int main() {
string s, word, longest;
getline(cin, s);
stringstream ss(s);
while (ss >> word) {
if (word.length() > longest.length()) longest = word;
}
cout << longest;
return 0;
}
1. Phần khai báo thư viện
cpp
#include <iostream>
#include <sstream>
using namespace std;
#include <iostream>: Thư viện cung cấp các hàm nhập/xuất (cin, cout).
#include <sstream>: Thư viện cung cấp lớp stringstream để xử lý chuỗi như một dòng dữ liệu (stream). Đây là công cụ chính để tách từ trong chuỗi.
2. Khai báo biến
cpp
string s, word, longest;
getline(cin, s);
string s: Chuỗi đầu vào từ người dùng.
string word: Dùng để lưu từng từ được tách ra từ chuỗi s.
string longest: Lưu trữ từ dài nhất được tìm thấy trong chuỗi.
getline(cin, s): Đọc toàn bộ một dòng văn bản từ người dùng nhập và lưu vào s.
Dùng getline thay vì cin >> để đảm bảo nhận toàn bộ chuỗi (bao gồm khoảng trắng).
3. Tạo và sử dụng stringstream
cpp
stringstream ss(s);
Tạo đối tượng stringstream từ chuỗi s.
stringstream hoạt động như một dòng dữ liệu, cho phép tách từng từ từ chuỗi s dựa trên khoảng trắng mặc định.
4. Vòng lặp tách từ và so sánh
cpp
while (ss >> word) {
if (word.length() > longest.length()) longest = word;
}
while (ss >> word):
Lấy từng từ từ dòng dữ liệu ss và gán vào biến word.
Quá trình tách dựa trên khoảng trắng.
if (word.length() > longest.length()):
So sánh độ dài của từ hiện tại (word.length()) với từ dài nhất đang lưu trong longest.
Nếu từ hiện tại dài hơn, cập nhật giá trị của longest thành từ hiện tại.
5. In kết quả và kết thúc chương trình
cpp
cout << longest;
return 0;
cout << longest;: In từ dài nhất tìm được ra màn hình.
return 0;: Kết thúc chương trình.
Bình luận