Hướng dẫn giải của [200 đề thầy Đức] Bài 139: Các từ quá dài
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.
Hướng dẫn giải
Với mỗi từ có độ dài lớn hơn 10 ký tự, thay bằng chữ viết tắt gồm chữ cái đầu, số chữ cái ở giữa, và chữ cái cuối. Từ không quá dài thì giữ nguyên.
Cách làm
Đọc n, rồi đọc từng từ bằng cin >> w.
Lấy độ dài len = w.size(). Nếu len lớn hơn 10 thì in w[0], rồi in số len - 2 (số chữ ở giữa), rồi in w[len - 1].
Nếu không thì in nguyên từ đó. Ví dụ localization có 12 ký tự, viết tắt thành l10n.
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
for (int i = 1; i <= n; i++) {
string w;
cin >> w;
int len = w.size();
if (len > 10) {
// Từ quá dài: chữ đầu + số chữ ở giữa + chữ cuối
cout << w[0] << (len - 2) << w[len - 1] << "\n";
} else {
// Từ không quá dài thì giữ nguyên
cout << w << "\n";
}
}
return 0;
}
Bình luận