`

Word Search (C++)

 
阅读更多

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,
Given board =

[
  ["ABCE"],
  ["SFCS"],
  ["ADEE"]
]

word = "ABCCED", -> returns true,
word = "SEE", -> returns true,
word = "ABCB", -> returns false.

 

 

class Solution {
public:
    bool exist(vector<vector<char> > &board, string word) {
        if(board.size()<1 || word.size()<1) return false;
        int m = board.size();
        int n = board[0].size();
        for(int i = 0; i < m; ++i) {
            for(int j = 0; j < n; ++j) {
                vector<vector<char> > tmpBoard = vector<vector<char> >(board);
                if(match(tmpBoard, i, j, word, 0)) return true;
            }
        }
    }
    
    bool match(vector<vector<char> > &board, int i, int j, string word, int k) {
        if(i < 0 || i >= board.size() || j < 0 || j >= board[0].size()) return false;
        if(k < 0 || k > word.size()) return false;
        
        if(board[i][j] == word[k]) {
            if(k == word.size()-1) return true;
            
            board[i][j] = '*';
            ++k;
            return 
            match(board, i+1, j, word, k) ||
            match(board, i-1, j, word, k) ||
            match(board, i, j+1, word, k) ||
            match(board, i, j-1, word, k);
        }
        return false;
    }
};

 

欢迎关注微信公众号——计算机视觉:

0
5
分享到:
评论

相关推荐

    Word转PDF源码-C++开发

    #import "C:\\Program Files\\Microsoft Office\\Office14\\MSWORD.OLB" rename_namespace("MSWord") \ auto_search \ auto_rename \ no_auto_exclude \ rename("ExitWindows", "WordExitWindows") #import "C...

    C++ STL编程轻松入门(word版)

    ### C++ STL编程轻松入门详解 #### 一、引言:初识STL STL,全称为**标准模板库**(Standard Template Library),是现代C++编程中不可或缺的重要组成部分。它不仅为开发者提供了丰富的数据结构和算法支持,还极大...

    WordSearch.zip

    WordSearch.zip 文件看起来是一个压缩包,里面包含了一个名为 "WordSearch" 的文件。根据文件名推测,这可能是一个关于单词搜索谜题或者相关的文本处理工具。在IT领域,单词搜索通常与编程、文本分析和数据处理相关...

    WordSearch Creator-开源

    WordSearch Creator 的 C++ 实现展示了如何利用这种编程语言的强大功能来创建复杂的应用程序。C++ 是一种中级语言,既有高级语言的抽象性,又有低级语言的控制力,使得它适合开发性能要求高的系统级软件,如游戏引擎...

    英汉词典_C++_

    2. `bool searchWord(const std::string& word, std::string& translation)`: 根据英文单词搜索并返回翻译,如果找到则返回`true`,否则返回`false`。 此外,为了提高搜索效率,还可以考虑使用哈希表(如`std::...

    T tree C++ 源代码

    bool search(const string& word) const { Node* current = root; for (char c : word) { int index = c; if (!current-&gt;children[index]) { return false; } current = current-&gt;children[index]; } ...

    数据结构常用算法c++实现

    数据结构常用算法c++实现,程序目录如下: Array shuffle Prime test(trial division) Prime test(Miller-Rabin's method) 2D Array Arbitary Integer Linear congruential generator Maximum subarray problem Bit...

    C++做的简易电子词典

    作为一个玩具程序,它旨在帮助初学者理解C++编程和数据结构的应用,尤其是二叉排序树(Binary Search Tree, BST)在实际问题中的运用。 **C++语言基础** C++是一种静态类型的、编译式的、通用的、大小写敏感的、...

    Word-Search-Generator:用 C++ 编写的单词搜索拼图生成器

    **Word-Search-Generator** 是一个使用 **C++** 编程语言开发的程序,它能够自动生成单词搜索拼图。这种类型的拼图是教育游戏中常见的,通常用于帮助学习者记忆词汇,提升词汇量。拼图由一系列纵横交错的单词组成,...

    c++课程设计单词频率统计

    给定指定单词,统计其在选定文本中出现的频率 ...还需要用到显示每个单词频率的函数frequencydisplay(),在searchword()基础上使需要查找的单词是链表中的每一个不重复的单词;需要主函数来调用定义的函数。

    (完整word版)c++-学生信息管理系统-(链表+文件)-实验报告.doc

    6. 查询函数 Search():分别可以按学号和按姓名进行学生信息查询。 7. 菜单函数 Menu():为程序的菜单函数,为实现各种功能提供便捷。 8. 读取数据函数 Read():从外部文件读取学生信息信息。 9. 保存数据函数 Save...

    课程设计(C++)文章管理系统

    - `void Search(int)`: 查找指定编号的文章并输出其信息。 - `float Average()`: 计算所有文章的推荐指数平均值。 - **构造函数与析构函数**: - `Commonbox(){head=NULL;}`: 构造函数初始化链表头指针为NULL。...

    Bloodshed Dev-C++

    * Implemented search in help files for the word at cursor (context sensitive help) * Implemented "compiler sets" infrastructure to switch between different compilers easily (e.g. gcc-2.95 and gcc-3.2)...

    c++-c++编程基础之leetcode题解第79题单词搜索.zip

    在本压缩包中,主题聚焦于C++编程基础与LeetCode题解,特别是关于第79题“单词搜索”(Word Search)。LeetCode是一个在线平台,它提供了许多编程题目,帮助开发者提升算法技能和问题解决能力。让我们深入探讨C++...

    (完整word版)c++学生信息管理系统(链表+文件)实验报告.pdf

    - **Search() 函数**:按学号或姓名进行查询,返回匹配的学生信息。 - **Menu() 函数**:提供用户友好的菜单界面,引导用户选择操作。 - **Read() 函数**:从外部文件加载学生信息,初始化链表。 - **Save() 函数**...

    c++数据结构与算法实现

    WordLadder.cpp: Word Ladder Program and Word Changing Utilities SeparateChaining.h: Header file for separate chaining SeparateChaining.cpp: Implementation for separate chaining TestSeparateChaining...

    (完整word版)c++学生信息管理系统(链表+文件)实验报告.docx

    - **Search() 函数**:支持按照学号和姓名进行查询,快速定位特定学生。 - **Menu() 函数**:提供用户友好的菜单界面,引导用户执行各项操作。 - **Read() 函数**:从外部文件读取学生信息,恢复系统状态。 - **...

    (完整word版)c++学生信息管理系统(链表+文件)实验报告 (2).pdf

    - **Search()**:支持按学号和姓名查询学生信息。 - **Menu()**:提供用户交互的菜单界面,方便用户选择操作。 - **Read()**:从外部文件读取学生信息并重建链表。 - **Save()**:将链表中的学生信息保存到外部...

Global site tag (gtag.js) - Google Analytics