• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            FireEmissary

              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
              14 隨筆 :: 0 文章 :: 20 評論 :: 0 Trackbacks

            Given a 2D board and a list of words from the dictionary, find all words in the board.

            Each word must be constructed from letters of sequentially adjacent cell, where "adjacent" cells are those horizontally or vertically neighboring. The same letter cell may not be used more than once in a word.

            For example,
            Given words = ["oath","pea","eat","rain"] and board =

            [   ['o','a','a','n'],   ['e','t','a','e'],   ['i','h','k','r'],   ['i','f','l','v'] ] 
            Return ["eat","oath"].

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


            做完Word Search點下面的鏈接跳到212...大量要查找的單詞,提示用trie樹.網上果然都是用trie樹的....不過只需要用到信息能剪枝就好啦就沒建立一個真正的trie樹.
             struct Layer{
                     
            int close=0;//>0代表一個完整的詞且代表在words里的索引+1
                    array<Layer*,26>  next{};//26個字母,不為0即代表當前找到的是前綴或完整詞
                    ~Layer(){
                        
            for(Layer*l:next)
                          delete l;
                    }
                };
                
            void find(vector<vector<char>>& board,int i,int j ,vector<string>& words,Layer*lay,vector<string>&res)
                {        
                      
            char cur=board[i][j];
                      
            if(cur=='-')return;
                      lay
            =lay->next[cur-'a'];
                      
            if(!lay)return;
                       
            if(lay->close){
                          res.push_back(words[lay
            ->close-1]);
                          lay
            ->close=0;
                      }
                      board[i][j]
            ='-';//依然寫入其它字符防止重復使用
                         if(i+1<board.size())find(board,i+1,j,words,lay,res);
                         
            if(i>0)find(board,i-1,j,words,lay,res);
                         
            if(j+1<board[0].size())find(board,i,j+1,words,lay,res);
                         
            if(j>0)find(board,i,j-1,words,lay,res);
                      board[i][j]
            =cur;
                }
                vector
            <string> findWords(vector<vector<char>>& board, vector<string>& words) {
                      Layer root;
                      
            for(int i=0;i<words.size();++i)
                       {
                           Layer
            *cur=&root;
                           
            for(char c:words[i]){
                               
            if(!cur->next[c-'a']){
                                cur
            ->next[c-'a']=new Layer;
                               }
                               cur
            =cur->next[c-'a'];
                           }
                           cur
            ->close=i+1;
                       }
                      vector
            <string> res;
                      
            for(int i=0;i<board.size();++i)
                        
            for(int j=0;j<board[0].size();++j)
                        {
                            find(board,i,j,words,
            &root,res);
                        }
                        
            return res;
                }
            posted on 2016-03-27 20:57 FireEmissary 閱讀(1209) 評論(0)  編輯 收藏 引用
            97久久久久人妻精品专区| 四虎国产精品免费久久5151| 亚洲国产二区三区久久| 久久久久亚洲AV成人网人人网站 | 国产精自产拍久久久久久蜜| 国产高潮国产高潮久久久| 久久无码人妻一区二区三区| 99久久国产精品免费一区二区| 亚洲欧美日韩精品久久亚洲区| 亚洲国产精品久久| 九九精品99久久久香蕉| 久久精品无码一区二区WWW| 伊人久久大香线蕉AV一区二区| 久久人人爽人人爽人人片AV麻豆| 久久午夜福利电影| 婷婷久久综合九色综合绿巨人| 久久精品无码一区二区日韩AV | 合区精品久久久中文字幕一区| 久久精品夜色噜噜亚洲A∨| 亚洲精品综合久久| 久久综合给合久久国产免费| 久久精品国产亚洲av日韩| 亚洲综合精品香蕉久久网97 | 91精品国产综合久久婷婷| AA级片免费看视频久久| 欧美日韩中文字幕久久久不卡| 狠狠色狠狠色综合久久| 久久综合综合久久97色| 亚洲人成无码www久久久| 亚洲综合日韩久久成人AV| 精品无码人妻久久久久久| 人妻中文久久久久| 日产精品久久久久久久| 久久99久久成人免费播放| 久久久亚洲欧洲日产国码aⅴ| 久久国产免费直播| 蜜臀av性久久久久蜜臀aⅴ麻豆| 国产亚州精品女人久久久久久| 色综合久久久久久久久五月| 国产综合精品久久亚洲| 人妻久久久一区二区三区|