Python プログラム: 実際の文字列を取得するために必要な最小回転数を見つけますか?
文字列を効率的に処理する方法を理解することは、コードのパフォーマンスを大幅に向上させることができる基本的なプログラミング作業です。回転された文字列から目的の文字列を生成するために必要な最小回転数を見つけることは、文字列操作における興味深い課題です。テキスト処理、暗号化、データ圧縮などの状況では、多くの場合、この問題が発生します。
文字列が右に一定量回転された状況を考えてみましょう。目標は、文字列を元の形式に戻すために必要な最小回転数を見つけることです。この問題の解決策を見つけることで、文字列の構造についてさらに詳しく学び、有益な情報を得ることができます。
この記事では、回転された文字列から元の文字列を返すために必要な最小回転数を決定する 2 つの方法を検討します。これらのテクノロジーを実践するには、可読性と使いやすさで知られる柔軟で人気のあるプログラミング言語である Python が使用されます。
###方法###Python で検索して実際の文字列の最小回転数を取得するには、2 つの方法に従います -
- 強引な手段を使用します。
-
方法 1: ブルート フォースを使用する
ブルートフォースメソッドを使用して、最初の文字列をすべての可能な位置で回転し、2 番目の文字列を回転された最初の文字列と比較します。実行可能なすべての回転を反復することにより、2 番目の文字列を取得するために必要な最小回転数を追跡します。ループ終了後、最小回転変数がまだ無限大の場合、最初の文字列を回転して 2 番目の文字列を取得することはできません。そうでない場合は、必要な最小スピン数を返します。このメソッドの時間計算量は O(n^2) です。ここで、n は最初の文字列の長さです。
###アルゴリズム###Python で最小回転数を検索して実際の文字列を取得する手順は次のとおりです -
ステップ 1- 2 つの文字列を入力として受け取る関数を作成します。
ステップ 2 - 必要な最小スピン数を追跡するために、初期値が無限大の変数を作成します。
ステップ 3 - 0 から最初の文字列の長さまで、可能な値を繰り返し処理します。
ステップ 4- 最初の文字列は、現在のインデックス位置によって回転される必要があります。これにより、2 番目の文字列と回転された文字列が等しいことが検証されます。その場合は、変数の値を現在の最小値と現在のインデックスの間の最小値に変更します。
ステップ 5- 最小回転変数がまだ無限大に設定されている場合は、-1 が返されます (最初の文字列を回転して 2 番目の文字列を取得できないことを示します)。
ステップ 6 - そうでない場合は、最小回転変数を返します。
###例### リーリー ###出力### リーリー方法 2: ユーザー定義関数で while ループを使用する 明示的な文字列のローテーションを行うのではなく、連結された文字列を使用して 2 番目の文字列が存在することを確認することが機能します。 2 つの文字列の長さが異なるために、最初の文字列を回転しても 2 番目の文字列を取得できない場合は、-1 を返します。 2 番目の文字列が連結された文字列の部分文字列であるかどうかを判断することで、2 番目の文字列を最初の文字列から分離するのに必要な回転数を把握できます。最小回転数を決定するには、2 番目の文字列が部分文字列として見つかった場合、インデックスを計算し、それを最初の文字列の長さで割ります。このメソッドの時間計算量は O(n) です。ここで、n は最初の文字列の長さです。
###アルゴリズム###Python で最小回転数を検索して実際の文字列を取得する手順は次のとおりです -
ステップ 1- 2 つの文字列を入力として受け取る関数を作成します。
ステップ 2- 2 つの文字列の長さが等しくない場合は、-1 を返します (最初の文字列を回転しても 2 番目の文字列を取得できないため)。
ステップ 3- 最初の文字列をそれ自体と連結して、一時的な文字列を作成します。
ステップ 4- 2 番目の文字列が一時文字列の部分文字列である場合は、必要な最小回転数を一時文字列内の 2 番目の文字列のインデックスで割った値を返します。最初の文字列の長さを取得します。 .
ステップ 5- そうでない場合は、-1 を返します。 ###例### リーリー ###出力### リーリー ###結論は### この記事では、特定の文字列を別の文字列に変換するために必要な最小回転数を計算する 2 つの方法を検討しました。 2 番目の方法では、連結された文字列を使用して 2 番目の文字列が存在するかどうかを確認します。一方、総当り方式では、最初の文字列を実行可能な位置数ごとに回転します。入力のサイズと必要な効率に応じて、Python でこの問題を解決するための最適な戦略を選択できます。これらのメソッドのおかげで、指定された文字列からターゲット文字列を抽出するために必要な最小回転数を計算できるようになりました。
以上がPython プログラム: 実際の文字列を取得するために必要な最小回転数を見つけますか?の詳細内容です。詳細については、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)

ホットトピック









この記事では、Debianシステムの下でApacheログを分析することにより、Webサイトのパフォーマンスを改善する方法について説明します。 1.ログ分析の基本Apacheログは、IPアドレス、タイムスタンプ、リクエストURL、HTTPメソッド、応答コードなど、すべてのHTTP要求の詳細情報を記録します。 Debian Systemsでは、これらのログは通常、/var/log/apache2/access.logおよび/var/log/apache2/error.logディレクトリにあります。ログ構造を理解することは、効果的な分析の最初のステップです。 2。ログ分析ツールさまざまなツールを使用してApacheログを分析できます。コマンドラインツール:GREP、AWK、SED、およびその他のコマンドラインツール。

PythonはゲームとGUI開発に優れています。 1)ゲーム開発は、2Dゲームの作成に適した図面、オーディオ、その他の機能を提供し、Pygameを使用します。 2)GUI開発は、TKINTERまたはPYQTを選択できます。 TKINTERはシンプルで使いやすく、PYQTは豊富な機能を備えており、専門能力開発に適しています。

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

DebianシステムのReadDir関数は、ディレクトリコンテンツの読み取りに使用されるシステムコールであり、Cプログラミングでよく使用されます。この記事では、ReadDirを他のツールと統合して機能を強化する方法について説明します。方法1:C言語プログラムを最初にパイプラインと組み合わせて、cプログラムを作成してreaddir関数を呼び出して結果をinclude#include#include inctargc、char*argv []){dir*dir; structdireant*entry; if(argc!= 2){(argc!= 2){

限られた時間でPythonの学習効率を最大化するには、PythonのDateTime、時間、およびスケジュールモジュールを使用できます。 1. DateTimeモジュールは、学習時間を記録および計画するために使用されます。 2。時間モジュールは、勉強と休息の時間を設定するのに役立ちます。 3.スケジュールモジュールは、毎週の学習タスクを自動的に配置します。

この記事では、DebianシステムでNGINXSSL証明書を更新する方法について説明します。ステップ1:最初にCERTBOTをインストールして、システムがCERTBOTおよびPython3-Certbot-Nginxパッケージがインストールされていることを確認してください。インストールされていない場合は、次のコマンドを実行してください。sudoapt-getupdatesudoapt-getinstolcallcertbotthon3-certbot-nginxステップ2:certbotコマンドを取得して構成してlet'sencrypt証明書を取得し、let'sencryptコマンドを取得し、nginx:sudocertbot - nginxを構成します。

DebianシステムでHTTPSサーバーの構成には、必要なソフトウェアのインストール、SSL証明書の生成、SSL証明書を使用するWebサーバー(ApacheやNginxなど)の構成など、いくつかのステップが含まれます。 Apachewebサーバーを使用していると仮定して、基本的なガイドです。 1.最初に必要なソフトウェアをインストールし、システムが最新であることを確認し、ApacheとOpenSSL:sudoaptupdatesudoaptupgraysudoaptinstaをインストールしてください

DebianでGitLabプラグインを開発するには、特定の手順と知識が必要です。このプロセスを始めるのに役立つ基本的なガイドを以下に示します。最初にgitlabをインストールすると、debianシステムにgitlabをインストールする必要があります。 GitLabの公式インストールマニュアルを参照できます。 API統合を実行する前に、APIアクセストークンを取得すると、GitLabのAPIアクセストークンを最初に取得する必要があります。 gitlabダッシュボードを開き、ユーザー設定で「アクセストーケン」オプションを見つけ、新しいアクセストークンを生成します。生成されます
