【题目描述】
Design a data structure that supports the following two operations: addWord(word)and 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.
Notice
You may assume that all words are consist of lowercase letters a-z.
设计一个包含下面两个操作的数据结构:addWord(word), search(word)
addWord(word)会在数据结构中添加一个单词。而search(word)则支持普通的单词查询或是只包含.和a-z的简易正则表达式的查询。
一个 . 可以代表一个任何的字母。
注意事项
你可以假设所有的单词都只包含小写字母 a-z。
【题目链接】
www.lintcode.com/en/problem/add-and-search-word/
【题目解析】
题目要我们建立一个数据结构,称为WordDictionary,它有两个功能:
1、能够实现能向其中添加词语
2、能够进行查找。输入一个词语,其中的任何字母可以用.符号来代替,如果在WordDictionary中有这个词语的话,就返回true,否则返回false。
由此看来这个问题主要是一个字符串模式匹配的问题。首先,我们可以建立一个元素为字符串的向量来存储单词。然后,每次新增添一个单词,就把它push到这个向量里。最后,只要写一个字符串匹配的函数,用来搜索字符串就好了。当然,按照题目的要求,这个匹配函数要把目标单词中的.都当成是匹配的。
【参考答案】