• <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 閱讀(1205) 評論(0)  編輯 收藏 引用
            亚洲国产精品无码久久| 九九热久久免费视频| 无码乱码观看精品久久| 嫩草影院久久国产精品| 久久久久亚洲精品无码蜜桃| 久久99热这里只有精品66| 国产精品久久99| 97超级碰碰碰碰久久久久| 久久精品国产免费| 996久久国产精品线观看| 国产精品久久久久久久| 好久久免费视频高清| 青青国产成人久久91网| 91精品国产高清久久久久久国产嫩草| 国内精品久久久久久久coent| 国产精品免费久久久久影院| 日产久久强奸免费的看| 亚洲国产综合久久天堂| 亚洲国产精品无码久久98| 久久99国产精品99久久| 亚洲国产成人久久一区WWW| 少妇人妻综合久久中文字幕| 97久久超碰国产精品2021| 久久国产乱子精品免费女| 精品久久国产一区二区三区香蕉| 日本五月天婷久久网站| 综合人妻久久一区二区精品| 国产精品无码久久综合| 亚洲精品久久久www| 久久久无码精品亚洲日韩蜜臀浪潮 | 久久精品国产清自在天天线| 久久精品国内一区二区三区| 中文精品99久久国产| 亚洲中文字幕久久精品无码喷水| 青青草原综合久久大伊人精品| 久久亚洲精品无码观看不卡| 久久免费看黄a级毛片| 久久精品国产精品亚洲| 久久久久99精品成人片欧美| 久久精品国产第一区二区| 亚洲精品高清国产一久久|