您的位置:首页 > 其它

211. Add and Search Word - Data structure design

2017-11-07 06:47 295 查看
class WordDictionary {

private WordDictionary[] children=new WordDictionary[26];

boolean isWord=false;

/** Initialize your data structure here. */
public WordDictionary() {

}

/** Adds a word into the data structure. */
public void addWord(String word) {
if(word.length()==0)
{
isWord=true;
return;
}
int idx=word.charAt(0)-'a';
if(children[idx]==null)
children[idx]=new WordDictionary();
children[idx].addWord(word.substring(1));
}

/** Returns if the word is in the data structure. A word could contain the dot character '.' to represent any one letter. */
public boolean search(String word) {
if(word.length()==0)
return isWord;
if(word.charAt(0)=='.')
{
for(int i=0;i<26;i++)
if(children[i]!=null&&children[i].search(word.substring(1))==true)
return true;
return false;
}
else
{
int idx=word.charAt(0)-'a';
if(children[idx]!=null)
return children[idx].search(word.substring(1));
return false;
}
}
}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: