【C++】AtCoder Programming Practice 問題解説まとめ
mintson
【公式】夜猫ミントのブログ
動画で解説を見たい方は上のYouTubeから閲覧できます!
今回の問題文は英小文字からなる文字列 S と正の整数 Nをまずは入力します。
それをN文字分Sの前と後ろを切り抜くものになります。
例えばyorunekomint 3と入力されたらunekomと出力していくみたいな感じです。
#include <bits/stdc++.h>
using namespace std;
int main(){
string S;
int N;
cin >> S >> N;
int len = S.length();
for(int i = N; i < len - N; i++){
cout << S[i];
}
return 0;
}文字列Sの長さをS.length()で取得したのをlenにします。
そしてN文字目からlen – N文字目までをfor文でループ出力することによって、答えの文字列を書き出します。
#include <iostream>
#include <string>
using namespace std;
int main() {
string S;
int N;
cin >> S;
cin >> N;
cout << S.substr(N, S.size() - 2 * N) << endl;
return 0;
}substringは文字列の一部を切り出す(抽出する)関数で、公式とすればsubstr(開始位置, 長さ) となります。
今回の問題には結構適していて、SのN文字目から文字列Sを2N分引いた長さを出力して欲しいといったシュチュレーションだったので個人的な解き方のおすすめは二つ目になります。
AIが普及してコードを書くことが少なくなったのですが、最近の改悪で自分が契約していたAIが使えるトークン量を制限したので、自分で書ける能力の重要さに再度気付かされたので、このようなコード解説の動画や記事を増やしていくのでこれからもよろしくです!by夜猫ミント