码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode : Add and Search Word - Data structure design

时间:2015-05-19 07:13:15      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:

Add and Search Word - Data structure design

Total Accepted: 1221 Total Submissions: 6120

Design a data structure that supports the following two operations:

void addWord(word)
bool search(word)

search(word) can search a literal word or a regular expression string containing only letters a-z or .. A . means it can represent any one letter.

For example:

addWord("bad")
addWord("dad")
addWord("mad")
search("pad") -> false
search("bad") -> true
search(".ad") -> true
search("b..") -> true

Note:
You may assume that all words are consist of lowercase letters a-z.


[思路]

1. 用一个set存. 超时.

2. 用trie来存. 

[CODE]

public class WordDictionary {
    Set<String> dict = new HashSet<String>();
    // Adds a word into the data structure.
    public void addWord(String word) {
        dict.add(word);
    }

    // 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(dict.contains(word) ) return true;
        else if(!word.contains(".")) return false;
        
        for(int c='a'; c<='z'; c++) {
            int i=0;
            while(word.charAt(i++) != '.'){}
            StringBuilder sb = new StringBuilder(word);
            sb.setCharAt(i-1, (char)c);
            if( search(sb.toString()) ) return true;
        }
        return false;
    }
}

// Your WordDictionary object will be instantiated and called as such:
// WordDictionary wordDictionary = new WordDictionary();
// wordDictionary.addWord("word");
// wordDictionary.search("pattern");

2.



leetcode : Add and Search Word - Data structure design

标签:

原文地址:http://blog.csdn.net/xudli/article/details/45840001

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!