ABC197 A 解答
A - Rotate (6)
問題文
長さ 3 の文字列 S が与えられます。
S の先頭の文字を S の末尾に移動して得られる文字列
S′を出力してください。
制約
S は英小文字のみからなる長さ3の文字列である
考察
s は3文字であることがわかっていますので、それを使って簡単に実装してしまいましょう。C++では、string型の文字列は配列のように i 番目の文字にアクセすることが可能です。
string s = abc
cout << s[0] << " " << s[1] << " " << s[2];
とやりますと
a b c
という出力が得られます。今回は先頭の文字を末尾にするため、1→2→0という順番で出力すれば答えになります。
実装
#include<bits/stdc++.h>
#define rep(i,n) for(int i=0;i<n;++i)
#define reps(i,s,n) for(int i=s;i<n;++i)
using namespace std;
using ll = long long;
using P = pair<int, int>;
int main()
{
string s;
cin >> s;
cout << s[1] << s[2] << s[0] << endl;
return 0;
}
あとがき
今回は答えを一つの変数に格納してないので、出力の形式には注意しましょう。「" "」みたいな半角スペースは不要です。本問題は文字列の各文字にアクセスするという基本的な問題でした。難しい問題にて文字列を色々と操作する際には、こういう本当に基礎となる部分をどれだけ調べずにできるかが結構大切だと思うので、忘れてた人は思い出しましょう。
この記事が気に入ったらサポートをしてみませんか?