Word Search, wordsearch

Source: Internet
Author: User

Word Search, wordsearch

Given a 2D board and a word, find if the word exists in the grid.

The word can 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.

For example,
GivenBoard=

[  ["ABCE"],  ["SFCS"],  ["ADEE"]]
Word= "ABCCED",-> Returns true,
Word= "SEE",-> Returns true,
Word= "ABCB",-> Returns false.

It is also a question about search. Simply using deep-priority search can meet the requirements. Using c ++ is not easy to implement timeout, and a timeout error may occur when writing in java, there is no way to solve the problem of language differences.

 

class Solution {private:    vector<vector<char> > *board;    string *word;    bool **used;private:    bool isInboard(int i, int j)    {        if(i < 0)return false;        if(i >= board->size())return false;        if(j < 0)return false;        if(j >= (*board)[i].size())return false;        return true;    }    bool DFS(int si, int sj, int n)    {        if(n == word->size())return true;        if(isInboard(si, sj))      if(!used[si][sj] && (*board)[si][sj] == (*word)[n]){            used[si][sj] = true;            if(DFS(si+1, sj, n+1)){                return true;            }else if(DFS(si-1, sj, n+1)){                return true;            }else if(DFS(si, sj+1, n+1)){                return true;            }else if(DFS(si, sj-1, n+1)){                return true;            }            //reset            used[si][sj] = false;            return false;        }        return false;    }public:    bool exist(vector<vector<char> > &board, string word) {        if(board.size() == 0)return false;        this->board = &board;        this->word = &word;        used = new bool*[board.size()];        for(int i = 0; i < board.size(); i ++)        {            used[i] = new bool[board[i].size()];            for(int j = 0; j < board[i].size(); j ++)                used[i][j] = false;        }        for(int i = 0; i < board.size(); i ++)            for(int j = 0; j < board[i].size(); j ++)                if(DFS(i, j, 0))return true;        return false;    }};


Word search

You can click Insert, image, clip art, and media repository to search for the cropped image. Enter the animal name. If you do not have this image, you can search for the image on the Internet using WORD Microsoft Office Online.

What is Word search?

Word Search
Network Definition
Word Search: Word Search | Advanced Search Method
Hangman and Word Search: Word games:
Word search instruction: word search instruction | word search instruction
 

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.