目次
ステップ4
第 3.2 ステップ
ホームページ バックエンド開発 C++ 翻訳: M クエリの場合、指定された文字列の範囲を逆にします。

翻訳: M クエリの場合、指定された文字列の範囲を逆にします。

Aug 25, 2023 pm 08:09 PM
お問い合わせ 逆行する

翻訳: 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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

12306 過去のチケット購入記録の確認方法 過去のチケット購入記録の確認方法 12306 過去のチケット購入記録の確認方法 過去のチケット購入記録の確認方法 Mar 28, 2024 pm 03:11 PM

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

Xuexin.com で学歴を確認する方法 Xuexin.com で学歴を確認する方法 Mar 28, 2024 pm 04:31 PM

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に変換する方法を詳しく解説 Mar 26, 2024 am 11:45 AM

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

python_python の繰り返し文字列チュートリアルで文字列を繰り返す方法 python_python の繰り返し文字列チュートリアルで文字列を繰り返す方法 Apr 02, 2024 pm 03:58 PM

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

Golang 文字列が指定された文字で終わるかどうかを判断する方法 Golang 文字列が指定された文字で終わるかどうかを判断する方法 Mar 12, 2024 pm 04:48 PM

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

Golang で文字列が特定の文字で始まるかどうかを確認するにはどうすればよいですか? Golang で文字列が特定の文字で始まるかどうかを確認するにはどうすればよいですか? Mar 12, 2024 pm 09:42 PM

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

MySQL と PL/SQL の類似点と相違点の比較 MySQL と PL/SQL の類似点と相違点の比較 Mar 16, 2024 am 11:15 AM

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

Go言語で文字列をインターセプトする方法 Go言語で文字列をインターセプトする方法 Mar 13, 2024 am 08:33 AM

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

See all articles