2707。字串中的額外字元
難度:中
主題:陣列、雜湊表、字串、動態規劃、Trie
給你一個 0 索引的 字串 s 和一個單字字典。您必須將 s 分成一個或多個非重疊子字串,以便每個子字串都出現在字典中。 s 中可能有一些額外字元,這些字元不存在於任何子字串中。
傳回如果您以最佳方式分解 s,則剩餘的最小剩餘額外字元數。
範例1:
範例2:
約束:
提示:
解:
我們可以定義一個 dp 數組,其中 dp[i] 表示子字串 s[0:i] 經過最優切分後的最少多餘字元數。
動態規劃定義:
過渡:
結果:
讓我們用 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”,函數正確傳回 1,因為只剩下 1 個額外字元 ("s")。
對於帶有字典 ["hello","world"] 的輸入“sayhelloworld”,函數傳回 3,因為前三個字元(“say”)是額外的。
聯絡連結
如果您發現本系列有幫助,請考慮在 GitHub 上給 存儲庫 一個星號或在您最喜歡的社交網絡上分享該帖子? 。您的支持對我來說意義重大!
如果您想要更多類似的有用內容,請隨時關注我:
以上是字串中的額外字符的詳細內容。更多資訊請關注PHP中文網其他相關文章!