1593年。文字列を最大数の一意の部分文字列に分割します
難易度: 中
トピック: ハッシュ テーブル、文字列、バックトラッキング
文字列 s を指定すると、指定された文字列を分割できる一意の部分文字列の最大数を返します。
文字列 s を 空でない部分文字列 の任意のリストに分割できます。部分文字列の連結が元の文字列を形成します。ただし、すべての部分文字列が一意になるように部分文字列を分割する必要があります。
部分文字列は、文字列内の連続した文字のシーケンスです。
例 1:
例 2:
例 3:
制約:
ヒント:
解決策:
後戻りアプローチを使用できます。これには、文字列内の現在位置から部分文字列の作成を再帰的に試行し、これまでに使用した一意の部分文字列を追跡することが含まれます。
段階的な解決策は次のとおりです:
このソリューションを PHP で実装してみましょう: 1593。文字列を最大数の一意の部分文字列に分割します
<?php class Solution { /** * @param String $s * @return Integer */ function maxUniqueSplit($s) { ... ... ... /** * go to ./solution.php */ } /** * @param $s * @param $used * @param $start * @return int|mixed */ private function backtrack($s, $used, $start) { ... ... ... /** * go to ./solution.php */ } } // Example usage $solution = new Solution(); echo $solution->maxUniqueSplit("ababccc"); // Output: 5 echo "\n"; echo $solution->maxUniqueSplit("aba"); // Output: 2 echo "\n"; echo $solution->maxUniqueSplit("aa"); // Output: 1 ?>
関数シグネチャ: メイン関数は maxUniqueSplit で、バックトラック プロセスを初期化します。
バックトラック:
出力: この関数は、さまざまな入力文字列の一意の部分文字列の最大数を返します。
連絡先リンク
このシリーズが役立つと思われた場合は、GitHub で リポジトリ にスターを付けるか、お気に入りのソーシャル ネットワークで投稿を共有することを検討してください。あなたのサポートは私にとって大きな意味を持ちます!
このような役立つコンテンツがさらに必要な場合は、お気軽にフォローしてください:
以上が文字列を最大数の一意の部分文字列に分割するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。