140. Word Break II

Dear 丶 2021-12-22 06:55 297阅读 0赞
  1. class Solution {
  2. public List<String> wordBreak(String s, List<String> wordDict) {
  3. Map<String,List<String>> map=new HashMap<String,List<String>>();
  4. wordBreak(s, map, wordDict);
  5. return map.get(s);
  6. }
  7. private void wordBreak(String s, Map<String,List<String>> map, List<String> wordDict){
  8. if(map.containsKey(s))
  9. return;
  10. List<String> list=new ArrayList<String>();
  11. if(s.length()==0)
  12. {
  13. list.add("");
  14. map.put(s,list);
  15. return;
  16. }
  17. for(String w:wordDict)
  18. if(s.startsWith(w))
  19. {
  20. String str=s.substring(w.length());
  21. wordBreak(str,map,wordDict);
  22. List<String> l=map.get(str);
  23. for(String sentence:l)
  24. list.add(w+(sentence.length()!=0?" ":"")+sentence);
  25. }
  26. map.put(s,list);
  27. }
  28. }

  

转载于:https://www.cnblogs.com/asuran/p/7644972.html

发表评论

表情:
评论列表 (有 0 条评论,297人围观)

还没有评论,来说两句吧...

相关阅读