2 つの文字列が与えられており、指定された文字列の順列が存在するかどうかを確認して、i 番目のインデックス文字で一方の順列が他方の順列よりも大きな値を持つことができるかどうかを確認する必要があります。の。
文字列をソートし、文字列内の各文字を 1 つずつ比較することで、この問題を解決できます。あるいは、2 つの文字列の文字頻度を使用して問題を解決することもできます。
問題文 - 長さ N の文字列 str1 と str2 が与えられています。辞書編集的に一方が他方よりも大きくなるような文字列の順列があるかどうかを確認する必要があります。これは、すべての順列の i 番目のインデックスに、別の文字列順列の i 番目のインデックスの文字よりも大きい文字が含まれている必要があることを意味します。
###例### 入力- str1 = "aef"; str2 = "fgh";
出力–はい
説明– 「fgh」はすでに「aef」よりも大きくなっています。ここで、a>f、g>e、h>fである。
入力– str1 = "adsm"; str2 = "obpc";
出力–いいえ
説明– 一方の文字列のすべての文字がもう一方の文字列よりも大きい配置は見つかりません。 方法1
isStr1Greater ブール変数を定義し、true で初期化します。
空間複雑度 - 文字列をソートするには O(N) が必要です。
###例### リーリー ###出力### リーリー
文字の頻度をカウントするため、時間計算量 - O(N)。一方の文字列のすべての文字が他方の文字列より大きくなるような 2 つの文字列の順列があるかどうかを確認する方法を学びました。 1 つ目の方法は並べ替え方法を使用し、2 つ目の方法は文字の累積頻度を使用します。
以上が指定された文字列の順列が別の指定された文字列よりも辞書編集的に大きいかどうかをチェックしますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。