C++で文字列を高速に逆順にする方法|reverse()関数の使い方を解説
この記事では、C++を使って文字列を非常に高速に逆順(反転)にする方法を解説します。文字列の反転には、algorithmライブラリに用意されている組み込み関数 reverse() を利用できます。この関数は、コンテナの先頭と末尾を指すイテレータを引数として受け取り、その範囲内の要素を反転させます。
入力:文字列 "Hello World" 出力:"dlroW olleH"
アルゴリズム
ステップ1:文字列を用意する ステップ2:reverse() 関数を使って文字列を反転する ステップ3:結果を出力する ステップ4:終了
サンプルコード
#include<iostream>
#include<algorithm>
using namespace std;
main() {
string my_str = "This is a string to be reversed";
cout << "Initial state of this string: " << my_str << endl;
// reverse() 関数を使って文字列を反転する
reverse(my_str.begin(), my_str.end());
cout << "Final state of this string: " << my_str;
}
実行結果
Initial state of this string: This is a string to be reversed Final state of this string: desrever eb ot gnirts a si sihT
reverse()関数のポイント
reverse()は<algorithm>ヘッダーで定義されている標準ライブラリ関数です。- 引数には
my_str.begin()とmy_str.end()のように、範囲の先頭と末尾を示すイテレータを渡します。 - 計算量は O(n) であり、文字数に比例した時間で処理が完了するため、非常に効率的です。
std::string以外にも、vectorや配列など、イテレータを持つさまざまなコンテナに対して使用できます。
なお、厳密にはC++の標準規格では main() 関数の戻り値型を int とすることが推奨されています。実際の開発では int main() と記述し、最後に return 0; を付けるのが望ましいでしょう。
このように、reverse() 関数を使えば、ループ処理を自前で書くことなく、たった1行で文字列を反転できるため、コードの可読性と保守性も向上します。
-
Androidで文字列を逆順に表示する方法をわかりやすく解説
本記事では、Androidアプリ開発において、ユーザーが入力した文字列を逆順(リバース)にして画面に表示する方法を実例とともに解説します。EditTextに入力されたテキストを、ボタンのクリックをきっかけに反転させてTextViewへ出力するシンプルなサンプルです。手順1:新規プロジェクトを作成するまず、Android Studioを開き、「File」→「New Project」から新しいプロジェクトを作成します。プロジェクト作成時に必要な項目をすべて入力してセットアップを完了させましょう。手順2:レイアウトファイル(activity_main.xml)を編集する次に、res/layout/a
-
Pythonで文字列を逆順にする方法|スライスとreversed()の使い方を解説
Pythonでは、文字列スライスやrange演算子を活用することで、文字列を簡単に逆順(反転)にすることができます。この記事では、代表的な2つの方法をわかりやすく解説します。 方法1:スライス記法 [::-1] を使う(推奨・高速) 最もシンプルで一般的なのが、スライス記法を使う方法です。ステップに -1 を指定するだけで、文字列を後ろから前へ一文字ずつ取り出せます。 >>> Hello[::-1] olleH >>> Halloween[::-1] neewollaH スライスの仕組み 角括弧 [] の中には、コロン「:」で区切った3つの値を指定できます