Решение задачи Слишком длинные слова с Codeforces

Без пояснения   Просмотров: 9174


Иногда некоторые слова вроде «localization» или «internationalization» настолько длинны, что их весьма утомительно писать много раз в каком либо тексте.

Будем считать слово слишком длинным, если его длина строго больше 10 символов. Все слишком длинные слова можно заменить специальной аббревиатурой.

Эта аббревиатура строится следующим образом: записывается первая и последняя буква слова, а между ними — количество букв между первой и последней буквой (в десятичной системе счисления и без ведущих нулей).

Таком образом, «localization» запишется как «l10n», а «internationalization» как «i18n».

Вам предлагается автоматизировать процесс замены слов на аббревиатуры. При этом все слишком длинные слова должны быть заменены аббревиатурой, а слова, не являющиеся слишком длинными, должны остаться без изменений.

Код

#include <bits/stdc++.h>

using namespace std;

int main()
{
    int n;
    string  temp;
    cin >> n;
    for(int i = 0; i < n; ++i){
        cin >> temp;
        if(temp.size() > 10)
            cout << temp[0] << temp.size() - 2 << temp[temp.size() - 1] << endl;
        else
            cout << temp;
    }

    return 0;
}

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться

  1. Avatar
    Don_Vaktor
    2023-02-25 01:08:53
    Привіт! Часто користуюся вашим кодом для CF. Цей був не виключенням. Але він дає помилку в тестах на CF. Тому я виправив ваш код і його зарахувало! Ось він: Можете покращити при потребі і викласти замість вашого абощо. Надіюся, що я допоміг.

    #include <bits/stdc++.h>
    using namespace std;

    int main()
    {
    int n; cin >> n;
    string word, array_of_words[n];

    for(int i = 0; i < n; i++)
    {
    cin >> word;
    if(word.size() > 10)
    array_of_words[i] = word[0] + to_string(word.size()-2) + word[word.size()-1];
    else
    array_of_words[i] = word;
    }
    for(int i = 0; i < n; i++)
    {
    cout << array_of_words[i] << endl;
    }
    }
  1. Avatar
    Don_Vaktor
    2023-02-25 01:12:22
  1. Avatar
    Don_Vaktor
    2023-02-25 01:12:31
  1. Avatar
    Don_Vaktor
    2023-02-25 01:12:36
  1. Avatar
    Don_Vaktor
    2023-02-25 01:12:40
  1. Avatar
    Don_Vaktor
    2023-02-25 01:13:28
    Привіт! Часто користуюся вашим кодом для CF. Цей був не виключенням. Але він дає помилку в тестах на CF. Тому я виправив ваш код і його зарахувало! Ось він: Можете покращити при потребі і викласти замість вашого абощо. Надіюся, що я допоміг.

    #include <bits/stdc++.h>
    using namespace std;

    int main()
    {
    int n; cin >> n;
    string word, array_of_words[n];

    for(int i = 0; i < n; i++)
    {
    cin >> word;
    if(word.size() > 10)
    array_of_words[i] = word[0] + to_string(word.size()-2) + word[word.size()-1];
    else
    array_of_words[i] = word;
    }
    for(int i = 0; i < n; i++)
    {
    cout << array_of_words[i] << endl;
    }
    }


Заявка на расчет