#文字列は、データ文字のシーケンスとフローを表す特定のオブジェクトです。文字列はデータ コンテナであり、常にテキスト形式で表されます。また、概念、比較、分割、連結、置換、トリム、長さ、内部化、等価、比較、および部分文字列の操作にも使用されます。 substring() は、保存されたデータの最初から最後までの間のデータを抽出するデータ調整処理です。 substring() は元の文字列を変更しません。データセット内に異なる文字がある場合、それらは異なるデータ要素として表現できます。たとえば、「a」と「r」は異なりますが、「r」と「r」は同じです。つまり、たとえば、orange という文字列には 6 つの異なる文字が含まれています。同様に、文字列 apple には 4 つの異なる文字のみが含まれます。
「s」が文字列であり、その文字列を異なるものにするためにすべての部分文字列に必要な最小変更数を見つける必要があるとします。
- 文字列の長さ - 26
- 指定された入力 - T は最初の行のテスト ケースであり、整数です。各テスト ケースには、26 文字を含む行が 1 行だけあります。
- 出力 - 各テスト ケースの最小数の変更を取得します。
- 論理メソッド フローの制約
今日の記事では、すべての部分文字列が異なるように文字列を変更する方法を学びます。
部分文字列を異なるものにするためのアルゴリズム
これは、変更を最小限に抑えながら、すべての部分文字列が区別されるように文字列を操作するための可能なアルゴリズムです。
- 最初のステップ - 始めましょう。
- ステップ 2 *-2 つのネストされたループを使用して部分文字列を生成します。
- ステップ 3 - 外側のループの i = 0 から、文字列の長さが 1 減ります。
- ステップ 4 - 内側のループは j = 0 から始まり、文字列の長さを 1 ずつ減らします。
- ステップ5 *-ゼロ値を使用してカウント変数を構築します。
- ステップ6 *-外側のループ内で、distinct_character変数を作成します。
- ステップ 7 - 周波数配列を作成します。
- ステップ 8- すべての要素をゼロに設定します。
- ステップ 9 - string[j]-'a' の頻度が 0 であるかどうかを確認します。
- ステップ 10- ゼロの場合は、1 ずつ増やします。
- ステップ 11- それ以外の場合は、内部ループに分割します。
- ステップ 12 - カウントが 0 より大きい場合は、カウントを返します。
- ステップ 13 - それ以外の場合は、-1 を返します。
- ステップ 14 - 終了。
すべての異なる部分文字列を作成するための構文
リーリー
この構文では、すべての部分文字列が異なるように文字列に最小限の変更を加える方法がわかります。
- パラメータ
- Start - 開始位置を宣言する必要があります。ここでの最初の文字のインデックスは 0 です。
- End -これは最後にあるオプションのプロセスです(これに限定されません)。
###方法###
方法 1 - 文字列のすべての部分文字列を異なるものにする変更の最小数を見つけます。
文字列のすべての部分文字列が異なるようになる最小の変更数を見つけます
このメソッドでは、すべての部分文字列を異なるものにする方法を学びます。ここでは、すべてのキャラクターが異なる必要があります。文字数を見つける必要があるだけです。文字列の長さが 26 を超える場合は、文字列に変換するだけで済みます。ここでは、同じロジックを異なるロケールで記述します。
例 1: C の使用
リーリー
###出力###
リーリー
例 2: Java を使用する場合
リーリー
###出力###
リーリー
例 1: Python の使用
リーリー
###出力###
リーリー
###結論は###
今日のこの記事では、最小限の変更ですべての部分文字列を異なるものにする方法を学びました。ここでは、C、Java、Python で説明されているアルゴリズムに従って、考えられるコードをいくつか作成しました。この主題についてより包括的な理解を得るのに役立つことを願っています。
以上がすべての部分文字列が異なるように文字列を最小限に変更します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。