Skip to content

Bug Report for search-for-word-ii #6163

Description

@RaghavGupta-01

Bug Report for https://neetcode.io/problems/search-for-word-ii

Getting 27/29 test cases passed on two different solutions - both fail on test case 28 with a runtime error (confirmed via AddressSanitizer).

  1. My own solution:
class TrieNode {
   public:
    TrieNode* child[26];
    string word;
    TrieNode() {
        for (int i = 0; i < 26; i++) {
            child[i] = NULL;
        }
        word = "";
    }
};
class Solution {
   public:
    vector<string> res;
    int rows, cols;

    void insert(TrieNode* root, string& word) {
        TrieNode* curr = root;
        for (char ch : word) {
            int idx = ch - 'a';
            if (curr->child[idx] == NULL) {
                curr->child[idx] = new TrieNode();
            }
            curr = curr->child[idx];
        }
        curr->word = word;
    }

    void dfs(vector<vector<char>>& board, TrieNode* node, int r, int c) {
        if (r < 0 || r >= rows || c < 0 || c >= cols) {
            return;
        }

        if (board[r][c] == '#') {
            return;
        }

        char ch = board[r][c];
        TrieNode* next = node->child[ch - 'a'];

        if (next == NULL) {
            return;
        }
        if (!next->word.empty()) {
            res.push_back(next->word);
            next->word = "";
        }
        board[r][c] = '#';

        dfs(board, next, r - 1, c);
        dfs(board, next, r + 1, c);
        dfs(board, next, r, c - 1);
        dfs(board, next, r, c + 1);
        board[r][c] = ch;
    }
    vector<string> findWords(vector<vector<char>>& board, vector<string>& words) {
        res.clear();
        rows = board.size();
        cols = board[0].size();

        TrieNode* root = new TrieNode();

        for (string& word : words) {
            insert(root, word);
        }

        for (int i = 0; i < rows; i++) {
            for (int j = 0; j < cols; j++) {
                dfs(board, root, i, j);
            }
        }

        return res;
    }
};
  1. The official Solution 3 (Backtracking with Trie) from
    https://neetcode.io/problems/search-for-word-ii/solution
    also fails on the same test case with the same kind of error.

Failing input (test case 28):

board=[["b","a","b","a","b","a","b","a","b","a"],["a","b","a","b","a","b","a","b","a","b"],["b","a","b","a","b","a","b","a","b","a"],["a","b","a","b","a","b","a","b","a","b"],["b","a","b","a","b","a","b","a","b","a"],["a","b","a","b","a","b","a","b","a","b"],["b","a","b","a","b","a","b","a","b","a"],["a","b","a","b","a","b","a","b","a","b"],["b","a","b","a","b","a","b","a","b","a"],["a","b","a","b","a","b","a","b","a","b"]]
words=["ababababaa","ababababab","ababababac","ababababad","ababababae","ababababaf","ababababag","ababababah","ababababai","ababababaj","ababababak","ababababal","ababababam","ababababan","ababababao","ababababap","ababababaq","ababababar","ababababas","ababababat","ababababau","ababababav","ababababaw","ababababax","ababababay","ababababaz","ababababba","ababababbb","ababababbc","ababababbd","ababababbe","ababababbf","ababababbg","ababababbh","ababababbi","ababababbj","ababababbk","ababababbl","ababababbm","ababababbn","ababababbo","ababababbp","ababababbq","ababababbr","ababababbs","ababababbt","ababababbu","ababababbv","ababababbw","ababababbx","ababababby","ababababbz","ababababca","ababababcb","ababababcc","ababababcd","ababababce","ababababcf","ababababcg","ababababch","ababababci","ababababcj","ababababck","ababababcl","ababababcm","ababababcn","ababababco","ababababcp","ababababcq","ababababcr","ababababcs","ababababct","ababababcu","ababababcv","ababababcw","ababababcx","ababababcy","ababababcz","ababababda","ababababdb","ababababdc","ababababdd","ababababde","ababababdf","ababababdg","ababababdh","ababababdi","ababababdj","ababababdk","ababababdl","ababababdm","ababababdn","ababababdo","ababababdp","ababababdq","ababababdr","ababababds","ababababdt","ababababdu","ababababdv","ababababdw","ababababdx","ababababdy","ababababdz","ababababea","ababababeb","ababababec","ababababed","ababababee","ababababef","ababababeg","ababababeh","ababababei","ababababej","ababababek","ababababel","ababababem","ababababen","ababababeo","ababababep","abab...
input truncated for display

Error output (ASan):

Image

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions