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.

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
  1. Đọc n, rồi đọc từng từ bằng cin >> w.

  2. 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].

  3. 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

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.