• <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)  編輯 收藏 引用
            久久久久亚洲av综合波多野结衣| 国产精品99久久不卡| 久久久久99这里有精品10| 无码任你躁久久久久久| 亚洲欧美伊人久久综合一区二区| 99久久99这里只有免费的精品| 99久久国产热无码精品免费久久久久| 青青青青久久精品国产h久久精品五福影院1421 | 久久国产高清一区二区三区| 中文成人无码精品久久久不卡| 精品久久久久久无码专区不卡| 久久人妻少妇嫩草AV蜜桃| 热re99久久精品国99热| 久久一区二区三区99| 国产精品99久久久久久人| 亚洲综合日韩久久成人AV| 国内精品久久久久久麻豆| 99久久中文字幕| 狠狠色丁香婷婷久久综合 | 久久久91人妻无码精品蜜桃HD| 久久天天躁夜夜躁狠狠| 久久狠狠一本精品综合网| 国产精品久久久久无码av| 亚洲AV无码久久| 99久久国产亚洲综合精品| 久久久久国产视频电影| 国产成人精品久久亚洲高清不卡 国产成人精品久久亚洲高清不卡 国产成人精品久久亚洲 | 久久国产综合精品五月天| 亚洲国产成人久久精品动漫| 亚洲AV无一区二区三区久久| 7777精品伊人久久久大香线蕉 | 精品久久久无码中文字幕天天| 久久96国产精品久久久| 777米奇久久最新地址| 国产产无码乱码精品久久鸭| 久久久精品人妻一区二区三区四 | 国内精品伊人久久久久av一坑| 成人久久免费网站| 久久夜色精品国产噜噜麻豆| 久久er99热精品一区二区| 国产午夜福利精品久久2021|