{"id":9505,"date":"2025-08-20T16:31:49","date_gmt":"2025-08-20T11:01:49","guid":{"rendered":"https:\/\/namastedev.com\/blog\/?p=9505"},"modified":"2025-10-13T15:35:34","modified_gmt":"2025-10-13T10:05:34","slug":"word-search","status":"publish","type":"post","link":"https:\/\/namastedev.com\/blog\/word-search\/","title":{"rendered":"Word Search"},"content":{"rendered":"\n<!-- Word Search_12-->\n<link\n    href=\"https:\/\/cdn.jsdelivr.net\/npm\/prismjs@1.29.0\/themes\/prism-tomorrow.min.css\"\n    rel=\"stylesheet\"\n\/>\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/prismjs@1.29.0\/prism.min.js\"><\/script>\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/prismjs@1.29.0\/plugins\/autoloader\/prism-autoloader.min.js\"><\/script>\n\n<style>\n.wp_blog_theme {\n  --primary: #E58C32;\n  --secondary: #030302;\n  --light-bg: #fef9f4;\n  --text-dark: #2d2d2d;\n  --tab-radius: 12px;\n  --shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n  --code-bg: #001f3f;\n  --code-text: #d4f1ff;\n}\n\n.wp_blog_container {\n  font-family: 'Segoe UI', sans-serif;\n  background: var(--light-bg);\n  margin: 0;\n  padding: 0;\n  color: var(--text-dark);\n}\n\n\/* Heading *\/\n.wp_blog_main-heading {\n  text-align: center;\n  font-size: 2.4rem;\n  color: var(--primary);\n  margin-top: 2.5rem;\n  font-weight: bold;\n}\n\n\/* Explanation Card *\/\n.wp_blog_explanation,\n.wp_blog_code-tabs-container {\n  max-width: 940px;\n  margin: 2rem auto;\n  padding: 2rem;\n  background: white;\n  border-radius: var(--tab-radius);\n  box-shadow: var(--shadow);\n}\n\n\/* Text and Visuals *\/\n.wp_blog_explanation h2 {\n  font-size: 1.4rem;\n  color: var(--primary);\n  margin-bottom: 0.5rem;\n}\n\n.wp_blog_explanation p,\n.wp_blog_explanation li {\n  font-size: 1.05rem;\n  line-height: 1.7;\n  margin: 0.5rem 0;\n}\n\n.wp_blog_explanation code {\n  background: #fef9f4;   \/* light bg instead of dark blue *\/\n  color: #E58C32;        \/* brand orange *\/\n  padding: 3px 6px;\n  border-radius: 4px;\n  font-family: 'Courier New', monospace;\n  font-weight: 600;      \/* optional, makes it pop *\/\n}\n\n.wp_blog_explanation img {\n  max-width: 100%;\n  border-radius: var(--tab-radius);\n  margin-top: 1rem;\n  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);\n}\n\n\/* Tab Buttons *\/\n.wp_blog_code-tabs-header {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 0.5rem;\n  margin-bottom: 1rem;\n}\n\n.wp_blog_code-tab-button {\n  padding: 0.6rem 1.2rem;\n  border: 1px solid var(--primary);\n  background: white;\n  color: var(--primary);\n  border-radius: 50px;\n  font-weight: 600;\n  cursor: pointer;\n  transition: all 0.3s ease;\n}\n\n.wp_blog_code-tab-button:hover {\n  background: var(--secondary);\n}\n\n.wp_blog_code-tab-button.active {\n  background: var(--primary);\n  color: white;\n}\n\n\/* Code Content *\/\n.wp_blog_code-tab-content {\n  display: none;\n  background: var(--code-bg);\n  border-radius: var(--tab-radius);\n}\n\n.wp_blog_code-tab-content.active {\n  display: block;\n}\n\n.wp_blog_code-tab-content pre {\n  margin: 0;\n  padding: 1.5rem;\n  font-size: 1rem;\n  overflow-x: auto;\n  background: var(--code-bg);\n  border-radius: var(--tab-radius);\n  color: var(--code-text);\n}\n\n\/* Dark mode variables *\/\n.wp_blog_theme.dark-mode {\n  --light-bg: #121212;\n  --text-dark: #f5f5f5;\n  --shadow: 0 4px 12px rgba(255, 255, 255, 0.08);\n  --code-bg: #1e1e1e;\n  --code-text: #c5f0ff;\n}\n\n.wp_blog_theme.dark-mode .wp_blog_explanation {\n  background: #1e1e1e;\n}\n\n\/* Dark mode code highlight *\/\n.wp_blog_theme.dark-mode .wp_blog_explanation code {\n  background: #333;\n  color: #ffd27f;\n}\n\n.wp_blog_theme {\n  position: relative; \/* makes it the reference for absolute children *\/\n}\n\n.wp_blog_toggle-btn {\n  position: absolute;\n  top: 1rem;\n  right: 1rem;\n  z-index: 9999;\n  padding: 0.5rem 0.8rem;\n  border-radius: 10%;\n  background: var(--primary);\n  color: white;\n  font-weight: bold;\n  cursor: pointer;\n  border: none;\n  box-shadow: var(--shadow);\n  transition: background 0.3s, transform 0.2s;\n}\n\n.wp_blog_toggle-btn:hover {\n  background: #cc772e;\n}\n\n.wp_blog_theme.dark-mode .wp_blog_code-tabs-container {\n  background: #1e1e1e;\n}\n<\/style>\n\n<div class=\"wp_blog_container wp_blog_theme\">\n        <button id=\"blogNotesThemeToggle\" class=\"wp_blog_toggle-btn\">\ud83c\udf19<\/button>\n<h1 class=\"wp_blog_main-heading\"><\/h1>\n\n<div class=\"wp_blog_explanation\">\n    <h2>Problem Statement:<\/h2>\n    <p>\n        Given an <code>m x n<\/code> grid of characters <code>board<\/code> and a string <code>word<\/code>, return <code>true<\/code> <i>if <code>word<\/code> exists in the grid<\/i>.\n    <\/p> \n\n    <p>The word can be constructed from letters of sequentially adjacent cells, where adjacent cells are horizontally or vertically neighboring. The same letter cell may not be used more than once.<\/p>\n\n    <p><strong>Example 1:<\/strong><\/p>\n    <img decoding=\"async\" src=\"https:\/\/namastedev.com\/blog\/wp-content\/uploads\/2025\/08\/Screenshot-2025-08-20-at-3.12.34\u202fPM.png\" alt=\"\">\n    <p><strong>Input:<\/strong> board = [[&#8220;A&#8221;,&#8221;B&#8221;,&#8221;C&#8221;,&#8221;E&#8221;],[&#8220;S&#8221;,&#8221;F&#8221;,&#8221;C&#8221;,&#8221;S&#8221;],[&#8220;A&#8221;,&#8221;D&#8221;,&#8221;E&#8221;,&#8221;E&#8221;]], word = &#8220;ABCCED&#8221;<\/p>\n    <p><strong>Output:<\/strong><code> \n        true\n<\/code><\/p>\n\n    <p><strong>Example 2:<\/strong><\/p>\n    <img decoding=\"async\" src=\"https:\/\/namastedev.com\/blog\/wp-content\/uploads\/2025\/08\/Screenshot-2025-08-20-at-3.12.39\u202fPM.png\" alt=\"\">\n    <p><strong>Input:<\/strong> board = [[&#8220;A&#8221;,&#8221;B&#8221;,&#8221;C&#8221;,&#8221;E&#8221;],[&#8220;S&#8221;,&#8221;F&#8221;,&#8221;C&#8221;,&#8221;S&#8221;],[&#8220;A&#8221;,&#8221;D&#8221;,&#8221;E&#8221;,&#8221;E&#8221;]], word = &#8220;SEE&#8221;<\/p>\n    <p><strong>Output:<\/strong><code> true<\/code><\/p>\n\n    <p><strong>Example 3:<\/strong><\/p>\n    <img decoding=\"async\" src=\"https:\/\/namastedev.com\/blog\/wp-content\/uploads\/2025\/08\/Screenshot-2025-08-20-at-3.12.44\u202fPM.png\" alt=\"\">\n    <p><strong>Input:<\/strong> board = [[&#8220;A&#8221;,&#8221;B&#8221;,&#8221;C&#8221;,&#8221;E&#8221;],[&#8220;S&#8221;,&#8221;F&#8221;,&#8221;C&#8221;,&#8221;S&#8221;],[&#8220;A&#8221;,&#8221;D&#8221;,&#8221;E&#8221;,&#8221;E&#8221;]], word = &#8220;ABCB&#8221;<\/p>\n    <p><strong>Output:<\/strong><code> false<\/code><\/p>\n\n\n    <h2>Constraints<\/h2>\n    <ul>\n        <li><code>m == board.length<\/code><\/li>\n        <li><code>n = board[i].length<\/code><\/li>\n        <li><code>1 <= m, n <= 6<\/code><\/li>\n        <li><code>1 <= word.length <= 15<\/code><\/li>\n        <li><code>board<\/code> and <code>word<\/code> consists of only lowercase and uppercase English letters.<\/li>\n    <\/ul>\n\n    <h2>Approach<\/h2>\n    <ul>\n        <li><strong>Traverse<\/strong> the <code>board cell<\/code> by cell.<\/li>\n        <li>Whenever the <strong>first character of the word matches<\/strong>, start a <code>DFS<\/code> backtracking search from that cell.<\/li>\n        <li><strong>In DFS:<\/strong>\n        <ul>\n            <li>Mark the <code>current cell<\/code> as visited <code>(\"#\")<\/code>.<\/li>\n            <li>Explore all <code>4 directions (up, down, left, right)<\/code> if the next <strong>character<\/strong> matches.<\/li>\n            <li>If you reach the <code>end of the word<\/code>, return true.<\/li>\n            <li><strong>Restore the cell<\/strong> after exploring (backtrack).<\/li>\n        <\/ul>\n        <\/li>\n        <li>If any <strong>DFS<\/strong> path <code>finds the word<\/code>, return <code>true<\/code>; otherwise return <code>false<\/code>.<\/li>\n    <\/ul>\n\n    <!-- <h2>Time Complexity:<\/h2>\n    <li><p><strong>Time Complexity = O(n * 2<sup>n<\/sup>)<\/strong><\/p><\/li> \n    <h2>Space Complexity:<\/h2>\n    <li><p><strong>Space Complexity =  O(n)<\/strong><\/p><\/li> -->\n\n<h2>Dry Run<\/h2>\n<div style=\"border-left: 4px solid var(--primary); padding: 1rem; border-radius: var(--tab-radius); margin: 1rem 0; background: var(--surface-2); color: var(--text-primary);\">\n  <p><strong>Input:<\/strong><\/p>\n  <pre style=\"white-space: pre-wrap; background: var(--surface-3); padding: 1rem; border-radius: 8px; overflow-x: auto;\">\nboard = [\n  [\"A\",\"B\",\"C\",\"E\"],\n  [\"S\",\"F\",\"C\",\"S\"],\n  [\"A\",\"D\",\"E\",\"E\"]\n]\nword = \"ABCCED\"\n  <\/pre>\n\n  <p><strong>State Transitions:<\/strong><\/p>\n  <pre style=\"white-space: pre-wrap; background: var(--surface-3); padding: 1rem; border-radius: 8px; overflow-x: auto;\">\nInitialize:\nresult = false\nm = 3, n = 4\n\nOuter loop:\ni = 0, j = 0 \u2192 board[0][0] = \"A\" matches word[0] = \"A\"\n\u2192 Call backtrack(0, 0, 1)\n\nLevel 1:\n(x=0, y=0, nextIndex=1, looking for \"B\")\noriginal = \"A\", board[0][0] = \"#\"\nRight: board[0][1] = \"B\" \u2192 matches word[1]\n\u2192 Call backtrack(0, 1, 2)\n\nLevel 2:\n(x=0, y=1, nextIndex=2, looking for \"C\")\noriginal = \"B\", board[0][1] = \"#\"\nRight: board[0][2] = \"C\" \u2192 matches word[2]\n\u2192 Call backtrack(0, 2, 3)\n\nLevel 3:\n(x=0, y=2, nextIndex=3, looking for \"C\")\noriginal = \"C\", board[0][2] = \"#\"\nDown: board[1][2] = \"C\" \u2192 matches word[3]\n\u2192 Call backtrack(1, 2, 4)\n\nLevel 4:\n(x=1, y=2, nextIndex=4, looking for \"E\")\noriginal = \"C\", board[1][2] = \"#\"\nDown: board[2][2] = \"E\" \u2192 matches word[4]\n\u2192 Call backtrack(2, 2, 5)\n\nLevel 5:\n(x=2, y=2, nextIndex=5, looking for \"D\")\noriginal = \"E\", board[2][2] = \"#\"\nLeft: board[2][1] = \"D\" \u2192 matches word[5]\n\u2192 Call backtrack(2, 1, 6)\n\nLevel 6:\n(x=2, y=1, nextIndex=6)\nnextIndex == word.length \u2192 result = true\n\nBacktracking restores all modified cells as recursion unwinds.\n  <\/pre>\n\n  <p><strong>Final Output:<\/strong> <code>true<\/code><\/p>\n\n  <p><strong>Explanation:<\/strong>  \n  The algorithm performs DFS + backtracking:\n  <ul style=\"margin-left: 1rem;\">\n    <li>Starts at \"A\" (0,0) and recursively explores neighbors.<\/li>\n    <li>Marks visited cells as \"#\" to avoid revisiting during the same path.<\/li>\n    <li>Successfully forms the word <code>\"ABCCED\"<\/code>.<\/li>\n    <li>Once <code>nextIndex === word.length<\/code>, result becomes <code>true<\/code>.<\/li>\n  <\/ul>\n  <\/p>\n<\/div>\n\n\n<\/div>\n\n\n<div class=\"wp_blog_code-tabs-container\">\n    <div class=\"wp_blog_code-tabs-header\">\n        <button class=\"wp_blog_code-tab-button active\" data-lang=\"js\">JavaScript<\/button>\n        <button class=\"wp_blog_code-tab-button\" data-lang=\"py\">Python<\/button>\n        <button class=\"wp_blog_code-tab-button\" data-lang=\"java\">Java<\/button>\n        <button class=\"wp_blog_code-tab-button\" data-lang=\"cpp\">C++<\/button>\n        <button class=\"wp_blog_code-tab-button\" data-lang=\"c\">C<\/button>\n        <button class=\"wp_blog_code-tab-button\" data-lang=\"cs\">C#<\/button>\n    <\/div>\n\n    <div class=\"wp_blog_code-tab-content active\" data-lang=\"js\">\n<pre><code class=\"language-javascript\">\nvar exist = function(board, word) {\n    let result = false;\n    let m = board.length;\n    let n = board[0].length;\n    let backtrack = (x, y, nextIndex) => {\n        if(nextIndex === word.length) {\n            result = true;\n        }\n        let original = board[x][y];\n        board[x][y] = \"#\";\n        if(y < n-1 &#038;&#038; board[x][y+1] === word[nextIndex]) {\n            backtrack(x, y+1, nextIndex + 1);\n        }\n        if(y > 0 && board[x][y-1] === word[nextIndex]) {\n            backtrack(x, y-1, nextIndex + 1);\n        } \n        if(x > 0 && board[x-1][y] === word[nextIndex]) {\n            backtrack(x-1, y, nextIndex + 1);\n        }\n        if(x < m-1 &#038;&#038; board[x+1][y] === word[nextIndex]) {\n            backtrack(x+1, y, nextIndex + 1);\n        }\n        board[x][y] = original;\n    }\n    for(let i=0; i < m; i++){\n        for(let j=0; j < n; j++){\n            if(board[i][j] === word[0]) {\n                backtrack(i, j, 1)\n            }\n        }\n    }\n    return result;\n};\n<\/code><\/pre>\n<\/div>\n\n<div class=\"wp_blog_code-tab-content\" data-lang=\"py\">\n<pre><code class=\"language-python\">\nclass Solution:\n    def exist(self, board, word: str) -> bool:\n        m, n = len(board), len(board[0])\n        self.result = False\n\n        def backtrack(x, y, nextIndex):\n            if nextIndex == len(word):\n                self.result = True\n                return\n            original = board[x][y]\n            board[x][y] = \"#\"\n\n            if y < n-1 and board[x][y+1] == word[nextIndex]:\n                backtrack(x, y+1, nextIndex+1)\n            if y > 0 and board[x][y-1] == word[nextIndex]:\n                backtrack(x, y-1, nextIndex+1)\n            if x > 0 and board[x-1][y] == word[nextIndex]:\n                backtrack(x-1, y, nextIndex+1)\n            if x < m-1 and board[x+1][y] == word[nextIndex]:\n                backtrack(x+1, y, nextIndex+1)\n\n            board[x][y] = original\n\n        for i in range(m):\n            for j in range(n):\n                if board[i][j] == word[0]:\n                    backtrack(i, j, 1)\n                    if self.result:\n                        return True\n        return self.result\n<\/code><\/pre>\n<\/div>\n\n<div class=\"wp_blog_code-tab-content\" data-lang=\"java\">\n<pre><code class=\"language-java\">\nclass Solution {\n    boolean result = false;\n\n    public boolean exist(char[][] board, String word) {\n        int m = board.length, n = board[0].length;\n\n        for (int i=0; i < m; i++) {\n            for (int j = 0; j < n; j++) {\n                if (board[i][j] == word.charAt(0)) {\n                    backtrack(board, word, i, j, 1);\n                    if (result) return true;\n                }\n            }\n        }\n        return result;\n    }\n\n    private void backtrack(char[][] board, String word, int x, int y, int nextIndex) {\n        if (nextIndex == word.length()) {\n            result = true;\n            return;\n        }\n        char original = board[x][y];\n        board[x][y] = '#';\n\n        if (y < board[0].length-1 &#038;&#038; board[x][y+1] == word.charAt(nextIndex)) backtrack(board, word, x, y+1, nextIndex+1);\n        if (y > 0 && board[x][y-1] == word.charAt(nextIndex)) backtrack(board, word, x, y-1, nextIndex+1);\n        if (x > 0 && board[x-1][y] == word.charAt(nextIndex)) backtrack(board, word, x-1, y, nextIndex+1);\n        if (x < board.length-1 &#038;&#038; board[x+1][y] == word.charAt(nextIndex)) backtrack(board, word, x+1, y, nextIndex+1);\n\n        board[x][y] = original;\n    }\n}\n<\/code><\/pre>\n<\/div>\n\n<div class=\"wp_blog_code-tab-content\" data-lang=\"cpp\">\n<pre><code class=\"language-cpp\">\nclass Solution {\npublic:\n    bool exist(vector<vector<char>>& board, string word) {\n        int m = board.size(), n = board[0].size();\n        bool result = false;\n\n        function<void(int,int,int)> backtrack = [&](int x, int y, int nextIndex) {\n            if (nextIndex == word.size()) {\n                result = true;\n                return;\n            }\n            char original = board[x][y];\n            board[x][y] = '#';\n\n            if (y < n-1 &#038;&#038; board[x][y+1] == word[nextIndex]) backtrack(x, y+1, nextIndex+1);\n            if (y > 0 && board[x][y-1] == word[nextIndex]) backtrack(x, y-1, nextIndex+1);\n            if (x > 0 && board[x-1][y] == word[nextIndex]) backtrack(x-1, y, nextIndex+1);\n            if (x < m-1 &#038;&#038; board[x+1][y] == word[nextIndex]) backtrack(x+1, y, nextIndex+1);\n\n            board[x][y] = original;\n        };\n\n        for (int i=0; i < m; i++) {\n            for (int j=0; j < n; j++) {\n                if (board[i][j] == word[0]) {\n                    backtrack(i, j, 1);\n                    if (result) return true;\n                }\n            }\n        }\n        return result;\n    }\n};\n<\/code><\/pre>\n<\/div>\n\n<div class=\"wp_blog_code-tab-content\" data-lang=\"c\">\n<pre><code class=\"language-c\">\nbool backtrack(char** board, int m, int n, int x, int y, const char* word, int nextIndex) {\n    if (word[nextIndex] == '\\0') return true;\n    char original = board[x][y];\n    board[x][y] = '#';\n\n    if (y < n-1 &#038;&#038; board[x][y+1] == word[nextIndex] &#038;&#038; backtrack(board,m,n,x,y+1,word,nextIndex+1)) return true;\n    if (y > 0 && board[x][y-1] == word[nextIndex] && backtrack(board,m,n,x,y-1,word,nextIndex+1)) return true;\n    if (x > 0 && board[x-1][y] == word[nextIndex] && backtrack(board,m,n,x-1,y,word,nextIndex+1)) return true;\n    if (x < m-1 &#038;&#038; board[x+1][y] == word[nextIndex] &#038;&#038; backtrack(board,m,n,x+1,y,word,nextIndex+1)) return true;\n\n    board[x][y] = original;\n    return false;\n}\n\nbool exist(char** board, int m, int* nCols, char* word) {\n    int n = nCols[0];\n    for (int i=0; i < m; i++) {\n        for (int j=0; j < n; j++) {\n            if (board[i][j] == word[0]) {\n                if (backtrack(board, m, n, i, j, word, 1)) return true;\n            }\n        }\n    }\n    return false;\n}\n<\/code><\/pre>\n<\/div>\n\n<div class=\"wp_blog_code-tab-content\" data-lang=\"cs\">\n<pre><code class=\"language-csharp\">\npublic class Solution {\n    public bool Exist(char[][] board, string word) {\n        int m = board.Length, n = board[0].Length;\n        bool result = false;\n\n        void Backtrack(int x, int y, int nextIndex) {\n            if (nextIndex == word.Length) {\n                result = true;\n                return;\n            }\n            char original = board[x][y];\n            board[x][y] = '#';\n\n            if (y < n-1 &#038;&#038; board[x][y+1] == word[nextIndex]) Backtrack(x, y+1, nextIndex+1);\n            if (y > 0 && board[x][y-1] == word[nextIndex]) Backtrack(x, y-1, nextIndex+1);\n            if (x > 0 && board[x-1][y] == word[nextIndex]) Backtrack(x-1, y, nextIndex+1);\n            if (x < m-1 &#038;&#038; board[x+1][y] == word[nextIndex]) Backtrack(x+1, y, nextIndex+1);\n\n            board[x][y] = original;\n        }\n\n        for (int i=0; i < m; i++) {\n            for (int j=0; j < n; j++) {\n                if (board[i][j] == word[0]) {\n                    Backtrack(i, j, 1);\n                    if (result) return true;\n                }\n            }\n        }\n        return result;\n    }\n}\n<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<script>\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n  const buttons = document.querySelectorAll(\".wp_blog_code-tab-button\");\n  const contents = document.querySelectorAll(\".wp_blog_code-tab-content\");\n\n  buttons.forEach((button) => {\n    button.addEventListener(\"click\", () => {\n      const lang = button.getAttribute(\"data-lang\");\n\n      buttons.forEach((btn) => btn.classList.remove(\"active\"));\n      contents.forEach((content) => content.classList.remove(\"active\"));\n\n      button.classList.add(\"active\");\n      document\n        .querySelector(`.wp_blog_code-tab-content[data-lang=\"${lang}\"]`)\n        .classList.add(\"active\");\n    });\n  });\n\n  const themeToggle = document.getElementById(\"blogNotesThemeToggle\");\n  const themeContainer = document.querySelector(\".wp_blog_theme\");\n\n  themeToggle.addEventListener(\"click\", () => {\n    themeContainer.classList.toggle(\"dark-mode\");\n    themeToggle.textContent =\n      themeContainer.classList.contains(\"dark-mode\") ? \"\u2600\ufe0f\" : \"\ud83c\udf19\";\n  });\n});\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>\ud83c\udf19 Problem Statement: Given an m x n grid of characters board and a string word, return true if word exists in the grid. The word can be constructed from letters of sequentially adjacent cells, where adjacent cells are horizontally or vertically neighboring. The same letter cell may not be used more than once. Example<\/p>\n","protected":false},"author":108,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[210,322,260,176,175,211,811,810,174,172,173],"tags":[],"class_list":["post-9505","post","type-post","status-publish","format-standard","category-algorithms","category-algorithms-and-data-structures","category-c-c-plus-plus","category-csharp","category-cplusplus","category-data-structures","category-data-structures-and-algorithms","category-dsa","category-java","category-javascript","category-python"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/posts\/9505","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/users\/108"}],"replies":[{"embeddable":true,"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/comments?post=9505"}],"version-history":[{"count":2,"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/posts\/9505\/revisions"}],"predecessor-version":[{"id":10253,"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/posts\/9505\/revisions\/10253"}],"wp:attachment":[{"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/media?parent=9505"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/categories?post=9505"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/namastedev.com\/blog\/wp-json\/wp\/v2\/tags?post=9505"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}