ABC007 B - 辞書式順序
目次
# 問題
https://atcoder.jp/contests/abc007/tasks/abc007_2
文字列が1つ与えられて辞書順でよりも小さい文字列のうち1つどれでも良いので答える問題です.
辞書順とは、文字列の文字を先頭から1つずつ比べていって初めて異なっていた文字がa - z
で早い方を「小さい」とする順序です.
先頭からすべての文字が同じでどちらかの文字列が終端に達した場合先に終端に達した短い方の文字列を「小さい」とします.
# 入力
S
- S - 小文字英数字からなる長さ1以上11以下の文字列
# 出力
T
# 入出力例
xyz
xy
# 解説
問題をよく考えてみると実は答えは2パターンしかないことが分かります.
入力がa
だった場合、それより小さい文字列は無いので-1
が答えです.
それ以外の場合a
が答えです.
辞書順で小さいもののうちどれでも良いので1つ答えれば良いので、辞書順最小のa
を答えておけば安心というわけです.
# 計算量
# 解答
string S;
void input() {
cin >> S;
}
void solve() {
if (S.length() == 1 && S[0] == 'a') {
cout << -1 << endl;
return;
}
cout << 'a' << endl;
}
int main() {
input();
solve();
return 0;
}