翻訳: M クエリの場合、指定された文字列の範囲を逆にします。
この問題では、配列の値に従って、指定された文字列に対して M 回の逆クエリを実行します。
問題を解決する素朴なアプローチは、指定された配列値に従って各文字列セグメントを反転することです。
最適化されたアプローチでは、同じ部分文字列を 2 回反転すると、元の文字列が得られるというロジックが使用されます。
問題ステートメント -アルファベット文字を含むアルファ文字列を指定しました。また、正の整数を含むサイズ M の arr[] 配列を指定しました。指定された文字列に対して M 操作を実行し、最終的な文字列を返す必要があります。
各操作では、arr[i] を取得し、部分文字列 arr[i] を N − arr[i] 1 まで尊重する必要があります。
例
入力
リーリー出力
リーリー ######説明### ###最初のコメントを実行すると、文字列は「psrqt」に変わります。
- 2 番目の監査を実行すると、「tqrsp」が得られました。
-
- 入力 リーリー
リーリー
説明- 同じ質問に対して何回かカップリングを実行すると、同じ文字列が得られます。 入力
リーリー 出力
リーリー 説明
-同じクエリを奇数回実行すると、文字列の逆が得られます。アプローチ 1 このアプローチでは、 reverse() メソッドを使用して部分文字列を反転します。指定されたクエリを使用して開始ポインタと終了ポインタを取得し、指定された文字列の部分文字列を反転します。 ###アルゴリズム###
ステップ 1 - 遍歴の数グループを開始します。
第 2 ステップ- arr[p] を使用 - 1 'left' 量を初期化します。
ステップ3
- str_len で「right」変数を初期化します - arr[p] 1.ステップ 4 - reverse() メソッドを使用して、部分文字列を左ポインターから右ポインターに反転します。 ###例### リーリー 出力
リーリー時間計算量 - 部分文字列を M 回反転する場合の O(N*M)。 空間の複雑さ - 動的空間を使用しないため、O(1)。
方法二このアプローチでは、特定のインデックスと、指定されたクエリを使用して反転に含まれる回数を計算します。インデックスが偶数回含まれている場合、それを元に戻す必要はありません。指定されたすべてのクエリにインデックスが奇数回含まれている場合は、特定のインデックスで文字を反転する必要があります。 ###アルゴリズム###
ステップ 1 - 文字列の長さに等しい初期化長さの「cnt」リスト。0 は、逆転送中に出現する特定のインデックスを格納します。
ステップ2-指定されたクエリの配列を走査し、現在のクエリに従って文字列の左右のポインタを取得します。
ステップ 3
-また、changeRange() 関数を実行して、現在のクエリの左右のポインターに従って「cnt」リストを更新します。 ステップ3.1-changeRange()関数で、「cnt」リストの「左」インデックスの値を増加させます。
第 3.2 ステップ
- 小さい「cnt」リスト内の「右 1」は右側のすべての値を指します。ここでは、「cnt」リストのすべての値を [左、右] の範囲で 1 ずつ増やす必要がありました。したがって、プレフィックスの合計を取得すると、「left」インデックスの右側にあるすべての値が 1 ずつインクリメントされるため、cnt[left] のみ 1 だけインクリメントしました。また、[right, str_len] インデックス間の cnt 値をインクリメントしたくないので、プレフィックスの合計によって 1 ずつ増加するため、すでに 1 ずつ減少させています。
ステップ4
-次に、getPrefixSum()関数を実行して、「cnt」リストのプレフィックス合計を計算します。ステップ4.1 - getPrefixSum() 関数で、文字列を走査し、前の要素の値を現在の要素に追加します。
ステップ 5 - 次に、'cnt' リストの表を逆順に巡回します。現在の要素が奇数の場合は、それを 'tmp' 文字列に追加します。
ステップ 6- 元の順序で「cnt」リスト テーブルに沿って「p」と「q」を 0 で初期化します。 ステップ 7
-「cnt」リスト内の現在の要素が奇数の場合は、tmp[q] を使用して alpha[p] を更新します。ステップ8 -最後に、アルファ文字列を返します。
例の中国語翻訳: 例 リーリー
出力リーリー
時間計算量 - O(M*N N)。ここで、O(M*N) はクエリに従って「cnt」リストを更新し、O(N) は指定された文字列を更新します。空間度 - O(N) の「cnt」列表を使用します。 最初の方法では、reveres() メソッドを使用して、指定された文字列のすべての命令を実行しました。の次数。
以上が翻訳: M クエリの場合、指定された文字列の範囲を逆にします。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









12306 チケット予約アプリの最新バージョンをダウンロードします。誰もが非常に満足している旅行チケット購入ソフトウェアです。行きたい場所に行くのに非常に便利です。ソフトウェアには多くのチケット ソースが提供されています。本物のチケットを渡すだけで済みます。 - 氏名認証によるオンラインチケット購入 全ユーザー 旅行券や航空券を簡単に購入でき、さまざまな割引が受けられます。また、チケットを入手するための事前予約も開始できます。ホテルや特別な車の送迎も予約できます。これを使用すると、ワンクリックで行きたい場所に行き、チケットを購入できます。旅行がより簡単で便利になり、すべての人に旅行体験を提供します編集者はオンラインで詳細を説明するようになり、12306 人のユーザーに過去のチケット購入記録を表示する方法が提供されます。 1. Railway 12306 を開き、右下隅の [My] をクリックして、[My Order] をクリックします。 2. 注文ページで [Paid] をクリックします。 3. 有料ページにて

Xuexin.com で私の学歴を確認するにはどうすればよいですか? Xuexin.com で学歴を確認できますが、多くのユーザーは Xuexin.com で学歴を確認する方法を知りません。次に、エディターが Xuexin.com で学歴を確認する方法に関するグラフィック チュートリアルを提供します。興味のあるユーザーはぜひ見に来てください! Xuexin.com の使用方法チュートリアル: Xuexin.com で学歴を確認する方法 1. Xuexin.com の入り口: https://www.chsi.com.cn/ 2. Web サイトのクエリ: ステップ 1: Xuexin.com のアドレスをクリックします。上記をクリックしてホームページに入ります [教育クエリ]をクリックします; ステップ2: 最新のWebページで下図の矢印に示すように[クエリ]をクリックします; ステップ3: 新しいページで[学術単位ファイルにログイン]をクリックします; ステップ4: ログインページで情報を入力し、[ログイン]をクリックします。

PHPでint型をstring型に変換する方法を詳しく解説 PHPの開発では、int型をstring型に変換する必要に遭遇することがよくあります。この変換はさまざまな方法で実現できますが、この記事では、読者の理解を深めるために、具体的なコード例とともに、いくつかの一般的な方法を詳しく紹介します。 1. PHP の組み込み関数 strval() を使用する PHP には、さまざまな型の変数を文字列型に変換できる組み込み関数 strval() が用意されています。 int型をstring型に変換する必要がある場合、

1. まず pycharm を開いて、pycharm ホームページに入ります。 2. 次に、新しい Python スクリプトを作成し、右クリックして [新規] をクリックし、[Pythonfile] をクリックします。 3. 文字列、コード: s="-" を入力します。 4. 次に、文字列内のシンボルを 20 回繰り返す必要があります (コード: s1=s*20)。 5. 印刷出力コード、コード: print(s1) を入力します。 6. 最後にスクリプトを実行すると、下部に戻り値が表示されます。 - 20 回繰り返しました。

タイトル: Golang で文字列が特定の文字で終わるかどうかを判断する方法 Go 言語では、文字列が特定の文字で終わるかどうかを判断する必要があることがあります。これは文字列を処理するときに非常に一般的です。この記事では、Go 言語を使用してこの関数を実装する方法と、参考用のコード例を紹介します。まず、Golang で文字列が指定された文字で終わるかどうかを判断する方法を見てみましょう。 Golang の文字列内の文字はインデックス作成によって取得でき、文字列の長さは次のようになります。

Golang で文字列が特定の文字で始まるかどうかを確認するにはどうすればよいですか? Golang でプログラミングする場合、文字列が特定の文字で始まるかどうかを確認する必要がある状況によく遭遇します。この要件を満たすために、Golang の strings パッケージによって提供される関数を使用してこれを実現できます。次に、Golangを使って文字列が特定の文字で始まるかどうかを確認する方法を、具体的なコード例とともに詳しく紹介します。 Golang では、strings パッケージの HasPrefix を使用できます。

MySQL と PL/SQL は 2 つの異なるデータベース管理システムであり、それぞれリレーショナル データベースと手続き型言語の特性を表しています。この記事では、具体的なコード例を示しながら、MySQL と PL/SQL の類似点と相違点を比較します。 MySQL は、構造化照会言語 (SQL) を使用してデータベースを管理および操作する、一般的なリレーショナル データベース管理システムです。 PL/SQL は Oracle データベースに固有の手続き型言語であり、ストアド プロシージャ、トリガー、関数などのデータベース オブジェクトを記述するために使用されます。同じ

Go 言語は、文字列インターセプトを含む豊富な文字列処理機能を提供する強力で柔軟なプログラミング言語です。 Go 言語では、スライスを使用して文字列をインターセプトできます。次にGo言語で文字列をインターセプトする方法を具体的なコード例を交えて詳しく紹介します。 1. スライスを使用して文字列をインターセプトする Go 言語では、スライス式を使用して文字列の一部をインターセプトできます。スライス式の構文は次のとおりです。slice:=str[start:end]where, s
