文字列と整数 k が与えられた場合、文字列内の文字を並べ替えて、k 個の類似した部分文字列の連結になるようにする必要があります。これが不可能な場合、出力は「不可能」となります。
リーリー文字列「mottom」と K=2 を考えてみましょう。特定の文字列は、tomtom、motmot omtomt などの 2 つの部分文字列の連結として表すことができます。 3 つの部分文字列すべてと同様、k = 2 の場合、2 つの部分文字列が連結されます。
文字列を使用すると、各文字の出現数を判断できます。その後、利用可能なすべての周波数が k で割り切れる場合、それは可能であり、考えられるあらゆる答えを出力できます。そうでなければ不可能です。
上記の例の C 実装は次のとおりです -
リーリー ###出力### リーリー文字を周波数にハッシュするために、map または unowned_map を使用できます。 [26] 配列を使用してラテン小文字を表し、すべての頻度を 0 に設定できます。これは実装ベースの質問であり、unowned_map または hashmap を使用すると、時間計算量は O(n) になります。
以上がC++ プログラム: 指定された文字列を再配置して、K 個の繰り返し文字列を形成します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。