この問題では、文字列「str」、整数 K、および整数 X が与えられます。文字列「str」には、1 ~ 9 の整数のみが含まれます。この文字列に対して X 操作を実行する必要があります。この操作では、毎回、文字列内の文字の出現数を文字列内の文字に置き換える必要があります。ここでの頻度とは、文字列内の文字の数または値を指します。私たちのタスクは、指定された操作を X 回実行した後、k 番目の文字を返すことです。
###例### リーリー リーリー
リーリー
上記で指定された文字列の例を見てきました。メソッド -
に移りましょう。単純な方法
上記のメソッドをよりよく理解するためにコードを見てみましょう -
リーリー ###出力### リーリー 時間と空間の複雑さ空間計算量は時間計算量とまったく同じです。 効率的な方法
これは、上記の方法の最適化されたバージョンです。ここで、毎回文字列を作成するのではなく、各憲章の範囲を X 回計算します。
ここでは、毎回、文字が文字値に対して時間の累乗で増加することが観察されます。
x 倍の文字列の KthChar を格納する kthChar 変数を作成します
->現在の文字の値を取得します
ずつ増加します。
pow(値, X)として。-> 範囲を変数「tot」に保存して、X 倍後の文字列の長さを維持します
-> X 回後の K 番目の文字が文字列の現在の長さ内にあるかどうかを確認します
As (K
kthChar を返す
###例### リーリー ###出力### リーリー
時間と空間の複雑さ
上記のコードの時間計算量は O(N) です。ここで、N は指定された長さのサイズです。
以上が文字列内の各文字を、正確に X 回出現した後の K 番目の文字に置き換えます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。