• <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 閱讀(1208) 評論(0)  編輯 收藏 引用
            午夜福利91久久福利| 婷婷五月深深久久精品| 精品精品国产自在久久高清| 狠狠色丁香婷婷综合久久来| 伊人久久大香线焦综合四虎| 亚洲人成网站999久久久综合| 国产精品乱码久久久久久软件 | 久久被窝电影亚洲爽爽爽| 曰曰摸天天摸人人看久久久| 久久久综合香蕉尹人综合网| 亚洲AV成人无码久久精品老人 | 久久国产精品99精品国产987| 久久99精品久久久久久噜噜| 亚洲精品无码成人片久久| 93精91精品国产综合久久香蕉| 狠狠色丁香久久婷婷综合图片| 久久国产成人精品麻豆| 久久久久av无码免费网| 国产香蕉97碰碰久久人人| 精品国产一区二区三区久久久狼 | 久久久久亚洲爆乳少妇无| 精品久久无码中文字幕| 精品综合久久久久久97| 污污内射久久一区二区欧美日韩| 国产精品久久网| 久久er99热精品一区二区| 无码国内精品久久综合88| 久久亚洲精品无码播放| 99久久国产主播综合精品| 久久精品亚洲精品国产色婷| 狠狠色婷婷久久综合频道日韩| 精品久久久久中文字幕一区| 久久精品国产一区| 久久精品成人免费网站| 国产精品一区二区久久精品| 国产亚洲精品美女久久久| 伊人久久精品无码二区麻豆| 模特私拍国产精品久久| 性做久久久久久久久浪潮| 亚洲精品国产第一综合99久久| 久久婷婷午色综合夜啪|