首页 > 代码库 > 139. Word Break

139. Word Break

Given a string s and a dictionary of words dict, determine if s can be segmented into a space-separated sequence of one or more dictionary words.

For example, given
s = "leetcode",
dict = ["leet", "code"].

Return true because "leetcode" can be segmented as "leet code".

 

public bool WordBreak(string s, ISet<string> wordDict) {        if(s == null || s.Length == 0) return true;        if(wordDict == null) return false;        var newSet =new HashSet<string>();        newSet.Add(s);        while(newSet.Count()>0)        {            var temp =new HashSet<string>();            foreach(string ss in newSet)            {                if(wordDict.Contains(ss)) return true;                for(int i = 0;i<= ss.Length;i++)                {                    if(wordDict.Contains(ss.Substring(0,i)))                    {                        if(wordDict.Contains(ss.Substring(i))) return true;                        temp.Add(ss.Substring(i));                    }                }            }            newSet = temp;        }        return false;    }

 

139. Word Break