Aizu Online Judge(AOJ)の過去問から、その提出コードの解答例です。
・問題 "Inversion of a String"
https://onlinejudge.u-aizu.ac.jp/problems/0667
文字列 S と,2 つの整数 A,B が与えられたとき,S のうち A 文字目から B 文字目までの文字の並びを逆にしてできる文字列を出力するプログラムを作成せよ.
僕が作成、提出したコードは、以下のとおりです。
Aizu Online Judge in C++ #Volume6 - 0667 : Inversion of a String
/* Aizu Online Judge in C++ #Volume6 - 0667 : Inversion of a String https://onlinejudge.u-aizu.ac.jp/problems/0667 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int n,a,b; cin>>n>>a>>b; string s; cin>>s; string t=s.substr(a-1,b-a+1); s.erase(a-1,b-a+1); reverse(t.begin(),t.end()); s.insert(a-1,t); cout<<s<<endl; return 0; }
設問の出典は、プログラミング問題のオンライン採点システム「Aizu Online Judge(AOJ)」です。
http://judge.u-aizu.ac.jp/onlinejudge/