79.單詞搜索

題目
給定一個二維網(wǎng)格和一個單詞知态,找出該單詞是否存在于網(wǎng)格中。

單詞必須按照字母順序出革,通過相鄰的單元格內(nèi)的字母構(gòu)成叠萍,其中“相鄰”單元格是那些水平相鄰或垂直相鄰的單元格悲敷。同一個單元格內(nèi)的字母不允許被重復使用。

示例:

board =
[
['A','B','C','E'],
['S','F','C','S'],
['A','D','E','E']
]

給定 word = "ABCCED", 返回 true.
給定 word = "SEE", 返回 true.
給定 word = "ABCB", 返回 false.

思路
使用DFS遍歷矩陣俭令,直到遍歷完字符串后德,說明匹配。但是需要記錄矩陣中哪個字符是已經(jīng)匹配過的抄腔。

由于英文字符范圍是0~127瓢湃,因此遍歷某個字符后,進行c^=128操作赫蛇,該字符在后續(xù)匹配中就不會再次匹配到绵患,從而實現(xiàn)標記的效果。在回溯的時候需要將標記的字符還原悟耘。

#include<vector>
using namespace std;
class Solution {
public:
    bool exist(vector<vector<char>>& board, string word) {
        int rows = board.size(), cols = board[0].size();
        for (int i = 0; i < rows; i++)
        {
            for (int j = 0; j < cols; j++)
            {
                if (findWord(board, word, i, j, 0))
                    return true;
            }
        }
        return false;
    }
    bool findWord(vector<vector<char>> board, string word, int row, int col, int index)
    {
        if (index == word.size()) return true;
        if (row < 0 || col < 0 || row >= board.size() || col >= board[0].size() || board[row][col] != word.at(index))
            return false;
        board[row][col] ^= 128;
        bool exist = findWord(board, word, row - 1, col, index + 1) ||
                     findWord(board, word, row, col - 1, index + 1) ||
                     findWord(board, word, row + 1, col, index + 1) ||
                     findWord(board, word, row, col + 1, index + 1);
        board[row][col] ^= 128;
        return exist;
    }
};

int main(int argc, char* argv[])
{
    vector<vector<char>> test = { 
        { 'A','B','C','E' }, 
        { 'S','F','C','S' }, 
        { 'A','D','E','E' } };
    vector<vector<char>> test2 = {
        { 'A' },
        { 'B'} };
    string word1 = "ABCCED", word2 = "SEE", word3 = "BA";

    auto res = Solution().exist(test2, word3);
    return 0;
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末落蝙,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子暂幼,更是在濱河造成了極大的恐慌筏勒,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件旺嬉,死亡現(xiàn)場離奇詭異管行,居然都是意外死亡,警方通過查閱死者的電腦和手機邪媳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門捐顷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人雨效,你說我怎么就攤上這事迅涮。” “怎么了徽龟?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵叮姑,是天一觀的道長。 經(jīng)常有香客問我顿肺,道長戏溺,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任屠尊,我火速辦了婚禮旷祸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘讼昆。我一直安慰自己托享,他們只是感情好,可當我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布浸赫。 她就那樣靜靜地躺著闰围,像睡著了一般。 火紅的嫁衣襯著肌膚如雪既峡。 梳的紋絲不亂的頭發(fā)上羡榴,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天,我揣著相機與錄音运敢,去河邊找鬼校仑。 笑死,一個胖子當著我的面吹牛传惠,可吹牛的內(nèi)容都是我干的迄沫。 我是一名探鬼主播,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼卦方,長吁一口氣:“原來是場噩夢啊……” “哼羊瘩!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起盼砍,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤尘吗,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后浇坐,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體摇予,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年吗跋,在試婚紗的時候發(fā)現(xiàn)自己被綠了侧戴。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡跌宛,死狀恐怖酗宋,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情疆拘,我是刑警寧澤蜕猫,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站哎迄,受9級特大地震影響回右,放射性物質(zhì)發(fā)生泄漏隆圆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一翔烁、第九天 我趴在偏房一處隱蔽的房頂上張望渺氧。 院中可真熱鬧,春花似錦蹬屹、人聲如沸侣背。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽贩耐。三九已至,卻和暖如春厦取,著一層夾襖步出監(jiān)牢的瞬間潮太,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工虾攻, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留消别,地道東北人。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓台谢,卻偏偏與公主長得像寻狂,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子朋沮,可洞房花燭夜當晚...
    茶點故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 給定一個二維網(wǎng)格和一個單詞蛇券,找出該單詞是否存在于網(wǎng)格中。單詞必須按照字母順序樊拓,通過相鄰的單元格內(nèi)的字母構(gòu)成纠亚,其中“...
    vbuer閱讀 321評論 0 0
  • 1蒂胞、為什么這個方法有用? 這是一個好用到吐血的時間管理法条篷。 ——因為我自己就是在一點點的摸索中骗随,完成了「自我救贖」...
    牛爸愛學習閱讀 823評論 1 2
  • 比起戊戌六君,你少了幾分錚錚鐵骨赴叹;比起維新康梁鸿染,你少了幾分高瞻遠矚。那是一個戰(zhàn)火連天乞巧、硝煙四起的年代涨椒,那是一個軟弱...
    元德上人閱讀 342評論 0 1
  • 21021 羅丹 生活的主題不只是競爭和追逐,還有心平氣和地等待,順其自然地播種蚕冬,所以免猾,淡定地和孩子一起享受從容快...
    做個溫暖的人AIA閱讀 67評論 0 0
  • 今晚的睡前“詩花”就來寫寫我的小糾結(jié)吧。 父母要去西藏玩囤热,軟磨硬泡我跟著去猎提。鑒于幾年前難忘的甘南經(jīng)歷,我真是左右為...
    松籽糖閱讀 137評論 0 0