2707。文字列内の余分な文字
難易度: 中
トピック: 配列、ハッシュ テーブル、文字列、動的プログラミング、トライ
0 インデックス付き 文字列と単語辞書が与えられます。各部分文字列が辞書に存在するように、 を 1 つ以上の 重複しない 部分文字列に分割する必要があります。 s には、どの部分文字列にも存在しない 余分な文字 が含まれている可能性があります。
最適に分割した場合に残る余分な文字の最小数を返します。
例 1:
例 2:
制約:
ヒント:
解決策:
最適なセグメンテーション後の部分文字列 s[0:i] 内の余分な文字の最小数を dp[i] で表す dp 配列を定義できます。
動的プログラミングの定義:
遷移:
結果:
このソリューションを PHP で実装してみましょう: 2707。文字列内の余分な文字
<?php /** * @param String $s * @param String[] $dictionary * @return Integer */ function minExtraChar($s, $dictionary) { ... ... ... /** * go to ./solution.php */ } // Test cases echo minExtraChar("leetscode", ["leet","code","leetcode"]); // Output: 1 echo "\n"; echo minExtraChar("sayhelloworld", ["hello","world"]); // Output: 3 ?>
基本ケース:
辞書検索:
遷移:
時間計算量:
辞書 ["leet","code","leetcode"] を含む入力 "leetscode" の場合、余分な文字 ("s") が 1 つだけ残っているため、関数は正しく 1 を返します。
辞書 ["hello","world"] を使用した入力 "sayhelloworld" の場合、最初の 3 文字 ("say") が余分であるため、関数は 3 を返します。
連絡先リンク
このシリーズが役立つと思われた場合は、GitHub で リポジトリ にスターを付けるか、お気に入りのソーシャル ネットワークで投稿を共有することを検討してください。あなたのサポートは私にとって大きな意味を持ちます!
このような役立つコンテンツがさらに必要な場合は、お気軽にフォローしてください:
以上が文字列内の余分な文字の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。