Lintcode107 Word Break solution 題解

【題目描述】

Given a string s and a dictionary of words dict, determine if s can be break into a space-separated sequence of one or more dictionary words.
給出一個字符串s和一個詞典,判斷字符串s是否可以被空格切分成一個或多個出現在字典中的單詞。
【題目鏈接】

www.lintcode.com/en/problem/word-break/


【題目解析】
wb[i]表示前i個字符能否組成dict中的word。在i之前尋找分割點j,若前j個字符的結果爲true並且j-i的字符串在dict中,則wb[i]爲true。
狀態函數:wb[i] = wb[i-j] && dict.contains(s.substring(i-j, i)),j表示最後一個word的長度。即前i個字符能否組成dict中的word取決於前i-j個字符能否組成dict中的word以及最後一個字符串能否組成dict中的word。
其中,可以先遍歷dict得到最長字符串的長度,然後將j限制在該長度內,可以優化時間。
【參考答案】

www.jiuzhang.com/solutions/word-break/



作者:程風破浪會有時
鏈接:http://www.jianshu.com/p/659fa89795d3
來源:簡書
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章