問題:ABC 069 B - i18n (AtCoder に登録したら次にやること 第02問類題)
問題文
internationalization という英単語は、i18n と略されることがあります。 これは、先頭文字 i と末尾文字 n の間に $18$ 文字が挟まっていることに由来します。
長さ $3$ 以上の英小文字のみからなる文字列 $s$ が与えられます。 同様の規則によって $s$ を略してください。
制約
・$3 \le |s| \le 100$ (ただし、$|s|$ は $s$ の長さを表す。)
・$s$ は英小文字のみからなる。
回答 (AC)
文字列 $s$ を変数 s で受け取り、(最初の文字) + (文字列の文字数-2) + (最後の文字) を出力すれば良いでしょう。なお、文字列を変数 s で受け取るとき、最初の文字は s.at(0), 文字数は s.size(), 最後の文字は s.at(s.size()-1) と表せます。
abc069b.cpp
#include <bits/stdc++.h>
using namespace std;
int main() {
string s;
cin >> s;
cout << s.at(0) << s.size()-2 << s.at(s.size()-1) << endl;
}
調べたこと
AtCoder の解説 → コンテスト全体の解説
回答と同じ方針でした。
学んだこと
- 文字列の参照 (a.at(*))
リンク
- 前の記事 → AtCoderログ:0016 - ABC 209 C
- 次の記事 → AtCoderログ:0018 - ABC 082 B