この質問では、文字ペア配列内の指定された文字に基づいて、指定された文字列の文字を置換する必要があります。 2 つの異なる解決策について説明します。最初の方法では、指定された文字列の文字と文字のペアを反復処理して各文字を置換します。
2 番目の方法では、長さ 26 の配列を使用して、各文字に関連付けられた置換文字を格納し、指定された文字列の文字を変更します。
問題ステートメント -N 個の小文字のアルファベットを含む文字列 str が与えられます。また、文字のペアを含む配列も与えられます。指定された文字列内のpairs[i][0]文字をpairs[i][1]に置き換える必要があります。
ここで、「x」は「a」に置き換えられ、「y」は「b」に置き換えられ、「z」は「c」に置き換えられます。
リーリー リーリー文字列内の「a」は「e」に、「b」は「t」に、「e」は「f」に、「r」は「s」に置き換えられます。
このメソッドでは、文字の各ペアを反復処理し、指定された文字列内の一致する文字を置き換えます。各ループの文字列を反復処理するには、2 つのネストされたループが必要です。
###アルゴリズム###- 文字列のサイズを変数 'N' に格納し、配列を変数 'M' に格納します。
- 文字列のコピーを「temp」変数に保存します。
- for ループを使用して、ペアのリストを反復処理します。
-ループ内で、最初の文字を変数「a」に保存し、2 番目の文字を変数「b」に保存します。
- ネストされたループを使用して文字列を反復処理します。
-ネストされたループで、指定された文字列の現在の文字が「a」と等しい場合、一時文字列内の現在の文字を「b」に置き換えます。
- temp の値を返します。
###例### リーリー ###出力### リーリーこのメソッドでは、サイズ 26 の配列を作成できます。その後、置換可能な文字を現在の文字の位置に保存できます。最後に、配列から置換可能な要素を取得し、文字列の各文字を更新します。
###アルゴリズム###ステップ 1
- 文字列サイズを「N」として、配列サイズを「M」として取得します。
- 長さ 26 の「初期」配列と「最終」配列を定義します。
- 文字列をループし、str[Y] を "str[Y] - a" の最初と最後の配列インデックスに格納します。ここで、str[Y] - 'a' は、文字の ASCII 値に基づいて 0 ~ 25 のインデックスを与えます。
最初と最後の配列の 'str[Y] - a' の位置に str[Y] を格納する理由は、文字列に文字が存在するが文字ペアには存在しない場合、それを変更しないままにしておくことができるためです。ステップ 4 - 指定された文字ペアの配列を反復処理します。ループ内で、ネストされたループを使用して、初期配列を反復処理します。現在のペアの最初の文字が「初期」配列の文字と等しい場合、「最終」配列の文字は現在のペアの 2 番目の文字で更新されます。
-「結果」変数を定義し、空の文字列に初期化します。
- 入力文字列を反復処理し、現在の文字に対応する文字を「最終」配列から取得し、それを「結果」文字列に追加します。
- 「結果」文字列を返します。
###例### リーリー ###出力### リーリー空間複雑度 - O(1)。長さ 26 (定数) の配列を使用するためです。
以上が指定された文字のすべての出現を指定された置換文字で置き換えることにより、文字列を変更します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。