Print shortest path gfg practice. If zero or two vertices have odd degree and all other vertices have even degree. Print shortest path gfg practice

 
 If zero or two vertices have odd degree and all other vertices have even degreePrint shortest path gfg practice  Else, discard it

You don't need to read input or print anything. Approach: An. Your Task: You don't need to read or print anything. You don't need to read or print anything. Your task is to complete the function Paths () that takes the root node as an argument and return all the possible path. Print the number of shortest paths from a given vertex to each of the vertices. The time complexity for the matrix representation is O (V^2). Output: 3. Find all possible paths that the rat can take to reach from source to destination. You don't need to read input or print anything. Your Task: You don't need to read input or print anything. C++ Program for Shortest distance between two cells in a matrix or grid. Examples: Input: X = "AGGTAB", Y = "GXTXAYB" Output: "AGXGTXAYB" OR "AGGXTXAYB" OR Any string that represents shortest supersequence of X and Y Input:. The path can only be created out of a cell if its value is 1. Practice. Count of shortest paths containing (U, V) as an edge = subtreeSize (U) * (N – subtreeSize (V)). Your task is to complete the function findShortestPath () which takes matrix as input parameter and return an integer denoting the shortest path. Below is the step by step algorithm to solve this problem:Queries to check if the path between two nodes in a tree is a palindrome. Count all possible paths from source to destination in given 3D array. Solve DSA problems on GfG Practice. 4% Submissions: 18K+ Points: 8. countSub (n) = 2*Count (n-1) - Repetition. The valid moves are: Go Top: (x, y) ——> (x – 1, y) Go. Example 2: Input: K = 3 3 / 2 1 / 5 3 Output: 5 3. Let us consider another. Approach: The main idea here is to use a matrix (2D array) that will keep track of the next node to point if the shortest path changes for any pair of nodes. The edge (a, b) must be excluded if there is. Example 1: Input: 1 / 3 2 / 4 Output: 2 Explanation: Minimum depth is between nodes 1 and 2 since minimum depth is defined as the number of nodes along the shortest path from the root node down to the nearest leaf node. At any step i, we can move forward i, then backward i + 1. You have to return a list of integers denoting shortest distance between each node and Source vertex S. 2. Note: The Graph doesn't contain any negative weight cycle. However, the longest path problem has a linear time solution for directed acyclic graphs. Example 2: Input: 10 / 20 30 40 60 / 2 Output: 3 Explanation: Minimum depth. You don't need to read input or print anything. Relax all the edges (u,v,weight) N-1 times as per the below condition: dist [v] = minimum (dist [v], distance. ; Initialise a priority-queue pq with S and its weight as 1 and a visited array v[]. The graph is given adjacency matrix representation where. Time Complexity: The time complexity of Dijkstra’s algorithm is O (V^2). Find shortest safe route in a path with landmines; Print all paths from a source point to all the 4 corners of a Matrix; Printing all solutions in N-Queen Problem; Longest path in a Matrix from a specific source cell to destination cell; Count of Possible paths of given Matrix having Bitwise XOR equal to K; Print all unique paths from given. Expected Time Complexity: O (R * C) Expected Auxiliary Space: O (1) Constraints: 1 <= R,C <= 103. If given node itself is a leaf, then distance is 0. Otherwise, for each of four adjacent cells of the current cell, enqueue each of the valid cells with +1 distance and. i. Note: Please read the G-32 and the. Recommended Practice. Given a weighted, undirected and connected graph of V vertices and E edges. Here, for every vertex in the graph, we have a list of all the other vertices which the particular vertex has an edge to. Shortest path from 1 to n | Practice | GeeksforGeeks. Practice. Follow the steps below to solve the given problem. in order to generate different substring. Example 1: Input: n = 9, You are a hiker preparing for an upcoming hike. Make sure the graph has either 0 or 2 odd vertices. There is an edge from a vertex i to a vertex j if and only if either j = i + 1 or j = 3 * i. a) Find the most overlapping string pair in temp []. Time Complexity: O (N*M). Print path between any two nodes in a Binary Tree; Preorder Traversal of Binary Tree; Count pairs of leaf nodes in a Binary Tree which are at most K distance apart; Print all root-to-leaf paths with maximum count of even nodes; Count nodes having highest value in the path from root to itself in a Binary Tree; Height and Depth of a node in a. e. Step 1: Pick edge 7-6. Since distance of + 5 and – 5 from 0 is same, hence we find answer for absolute value of destination. You are given an Undirected Graph having unit weight, Find the shortest path from src to all the vertex and if it is unreachable to reach any vertex, then return -1 for that vertex. Solve Problem. Floyd’s cycle finding algorithm or Hare-Tortoise algorithm is a pointer algorithm that uses only two pointers, moving through the sequence at different speeds. geeksforgeeks. Follow the steps below in order to solve the problem: Root the tree at any random vertex, say 1. Find if possible to visit every nodes in given Graph exactly once based on given conditions. Step by step Shortest Path from source node to destination node in a Binary Tree. A minimum spanning tree (MST) or minimum weight spanning tree for a weighted, connected, undirected graph is a spanning tree with a weight less than or equal to the weight of every other spanning tree. The Ford-Fulkerson algorithm is a widely used algorithm to solve the maximum flow problem in a flow network. Back to Explore Page. If there is no clear path, return -1. Transitive closure of above graphs is 1 1 1 1 1 1. Your Task:Your task is to complete the function isNegativeWeightCycle () which takes n and edges as input paramater and returns 1 if graph contains negative weight cycle otherwise returns 0. Practice. 3 elements arranged at positions 1, 7 and 12, resulting in a minimum distance of 5 (between 7 and 12) A Naive Solution is to consider all subsets of size 3 and find the minimum distance for every subset. Approach: The idea is to use the Shortest Path Faster Algorithm (SPFA) to find if a negative cycle is present and reachable from the. Hence, the shortest distance of node 0 is 0 and the shortest distance. Shortest path in a graph from a source S to destination D with exactly K edges for multiple Queries. Approach: The main idea here is to use a matrix (2D array) that will keep track of the next node to point if the shortest path changes for any pair of nodes. We can. Below are the detailed steps used in Dijkstra’s algorithm to find the shortest path from a single source vertex to all other vertices in the given graph. There is an edge from a vertex i to a vertex j iff either j = i + 1 or j = 3 * i. Notation: If s is clear from context we may use dist(u)as short hand for dist(s;u). Read. Let arr [] be given set of strings. Expected time complexity is O (V+E). Therefore the cost of the path = 3 + 5 + 4 = 12. Auxiliary Space: O (V+E) If you like GeeksforGeeks and would like to contribute, you can also write an article using write. Problem here, is a generalized version of the. Shortest path from 0 to 2 is 0->2 with edge weight 1. Single source shortest path between two cities. Detailed solution for Shortest Path in Undirected Graph with unit distance: G-28 - Given an Undirected Graph having unit weight, find the shortest path from the source to all other nodes in this graph. 1) Initialize distances of all vertices as infinite. Contests. 8. So whenever the target word is found for the first time that will be the length of the shortest chain of words. Characteristics of SJF Scheduling: Shortest Job first has the advantage of having a minimum average waiting time among all scheduling algorithms. Step 4: if the subsequence is not in the list then recur. Note: All weights are non-negative. And each time, you pop a position at the front of the queue ,at the same time, push all the positions which can be reached by 1 step and hasn't been visited yet. , whose minimum distance from source is calculated and finalized. If the path exists between two nodes then Next [u] [v] = v. Given a weighted directed graph consisting of V vertices and E edges. The given two nodes are guaranteed to be in the binary tree and nodes are numbered from 1 to N. Add the value of the current node to the path sum. Shortest path between two nodes in array like representation of binary tree. In fact, the Longest Path problem is NP-Hard for a general graph. In the below map of Ninjaland let say you want to go from S=1 to T=8, the shortest path is (1, 3, 8). Given a directed acyclic graph (DAG) of n nodes labeled from 0 to n - 1, find all possible paths from node 0 to node n - 1 and return them in any order. , it is to find the shortest distance between two vertices on a graph. ” in our path, we simply pop the topmost element as we have to jump back to parent’s directory. Hence, the shortest distance of node 0 is 0 and the shortest distance. Examples:. Your task is to complete the function countPaths(), which takes the integer V denoting the number of vertices, adjacency list adj, integer source, and destination as input parameters and returns the number of paths in the graph from the source vertex to the destination vertex. Your Task: You don't have to take input. Expected Time Complexity: O (N). (weight, vertex). Your task is to complete the function ShortestPath () which takes a string S and returns an array of strings containing the order of movements required to cover all characters of S. Practice. The shortest-path tree is built up, edge by edge. e. Input: N = 5, M = 8. If a vertices can't be reach from the S then mark the distance as 10^8. It's a common practice to augment dynamic programming algorithms to store parent pointers. Approach: To solve the problem, the idea is to use Breadth-First-Search traversal. Example 1: Input: 3 / 2 4 Output: 2 2 $ Explanation : There are 2 roots to leaf paths of length 2 (3 -> 2 and 3 -> 4) Example 2: Input: 10 / 20 30 / 40 60 Output: 2 1 $3 2 $ Explanation: There is 1 root leaf paths of length 2 and 2. We define ‘ g ’ and ‘ h ’ as simply as possible below. Print a given matrix in spiral form using the simulation approach: To solve the problem follow the below idea: Draw the path that the spiral makes. Menu. Assume any vertex (let’s say ‘0’) as source and assign dist = 0. One possible Topological order for the graph is 5, 4, 2, 1, 3, 0. You have to return a list of integers denoting shortest distance between each node and Source vertex S. Example 1: Input: K = 0 1 / 3 2 Output: 1. 2) In weighted graph, minimum total weight of edges to duplicate so that given graph converts to a graph with Eulerian Cycle. Try all 8 possible positions where a Knight can reach from its position. Example 1: Input: 1 / 2 3 Output: 1 2 #1 3 # ExplanatFollow the steps below to solve the problem: Initialize a variable, say res, to store all possible shortest paths. , whose minimum distance from the source is calculated and finalized. It defines a path with landmines which are marked as 0. Same as condition (a) for Eulerian Cycle. Also go through detailed tutorials. nanoTime (); //population size int populationSize = 30; //Number of. add the substring to the list. Output: 3. Min cost path using Dijkstra’s algorithm: To solve the problem follow the below idea: We can also use the Dijkstra’s shortest path algorithm to find the path with minimum cost. Given adjacency list adj as input parameters . Dijkstra. Johnson's algorithm for All-pairs shortest paths; Shortest Path in Directed Acyclic Graph; Multistage Graph (Shortest Path) Shortest path in an unweighted graph; Karp's minimum mean (or average) weight cycle algorithm; 0-1 BFS (Shortest Path in a Binary Weight Graph) Find minimum weight cycle in an undirected graph Explanation: There exists no path from start to end. The algorithm maintains a set of visited vertices. In the previous problem only going right and the bottom was allowed but in this problem, we are allowed to go bottom, up, right and left i. Approach: The idea is to use queue and visit every adjacent node of the starting nodes that traverses the graph in Breadth-First Search manner to find the shortest path between two nodes of the graph. You are given an array graph where graph [i] is a list of. where e is the number of edges in the graph. If there is no such path present then print “-1” . BFS will be okay. Prerequisites: Dijkstra. Given a binary tree, you need to find the number of all root to leaf paths along with their path lengths. For every vertex being processed, we update distances of its adjacent using distance of current vertex. The next row’s choice must be in a column that is different from the previous row’s column by at most one. If there are no negative weight cycles, then we can solve in O (E + VLogV) time using Dijkstra’s algorithm. cost. We can move in 4 directions from a given cell (i, j), i. If there are 2 odd vertices, start at one of them. Example 2: Input: Output: 1 Explanation: The output 1 denotes that the order is valid. Practice. Example 1: Input: grid = [[1,3,1],[1,5,1],[4,2,1]] Output: 7 Explanation: Because the path 1 → 3 → 1 → 1 → 1 minimizes the sum. Meet In The Middle technique can be used to make the solution faster. Examples: Input: src = 0, the graph is shown below. 4) Huffman. &nbsp; If the pat. Nodes should be printed from left to right. Method 1. 3) While the stack is not empty, do the following: a) Pop the top node from the stack and add it to the path stack. Find Longest Common Subsequence (lcs) of two given strings. Approach: The idea is to use breadth first search to calculate the shortest path from source to destination. e. Step 4: Pick edge 0-1. The idea is to consider the given snake and ladder board as a directed graph with a number of vertices equal to the number of cells in the board. In each recursive call get all the. GfG Weekly + You = Perfect Sunday Evenings! Register for free now. Single source shortest path between two cities. Shortest_Path_Faster_Algorithm is an improvement of the Bellman–Ford algorithm(as well as yours). If a node X lies on multiple root-to-leaf paths and if any of the paths has path length >= k, then X is not deleted from Binary Tree. Therefore, if shortest paths can be found in G’, then longest paths can also be found in G. Examples: Input: N = 4, M = 5. It shows step by step process of finding shortest paths. In this article, an O (E*K) approach is discussed for solving this problem. The graph is represented as an adjacency matrix of. So the path which will cover all the points is (1, 4) and (4, 1) on the coordinate axis. Given a Binary Tree and a node x in it, find distance of the closest leaf to x in Binary Tree. Input: N = 3, M = 2, edges = { {1, 2, 4}, {1, 3, 5}} Output: 1. Second path of length 2 is the shortest. For Example, in the above binary tree the path between the nodes 7 and 4 is 7 -> 3 -> 1 -> 4 . Follow the steps below to solve the problem: Start from the root node of the Binary tree with the initial path sum of 0. Shortest Path-Printing using Dijkstra's Algorithm for Graph (Here it is implemented for undirected Graph. For every vertex first, push current vertex into the queue and then it’s neighbours and if the vertex which is already visited comes again then the cycle is present. Practice. Print all unique paths from given source to destination in a Matrix moving only down or right. Here we not only find the shortest distance but also the path. Bottom up – Start from the nodes on the bottom row; the min pathsum for these nodes are the values of the nodes themselves. Strings are considered a data type in general and are typically represented as arrays of bytes (or words) that store a sequence of characters. Explanation: Largest minimum distance = 5. Time Complexity: O(N 2) Auxiliary Space: O(N) Efficient Approach:The problem can be solved. distance as 0. Input: i = 4, j = 3. The difference. For example a solution is 1033, 1733, 3733, 3739, 3779, 8779, 8179. Using this it's clear to see that you can generate the shortest path with one linear scan of a topological ordering (pseudocode): Graph g Source s top_sorted_list = top_sort (g) cost = {} // A mapping between a node, the cost of its shortest path, and //its parent in the shortest path for each vertex v in top_sorted_list: cost [vertex]. Follow the below steps to solve the above problem: 1) Start at the root node and push it onto a stack. Maximize sum of path from the Root to a Leaf node in N-ary Tree. It is a single source shortest path algorithm. In this post, the same is discussed for a directed graph. Print root to leaf paths without using recursion. Below is a recursive solution suggested by Arpit Thapar here . Shortest path in a directed graph by Dijkstra’s algorithm. If the reachable position is not already visited and is inside the board, push. Eventually, the shortest path, if one exists, is found and the spring has been relaxed to its resting length. Example 1: Input: 1 / 2 3 a = 2, b = 3 Output: 2 Explanation: The tree formed is: 1 / 2 3 We need the distance between 2 and 3. You are given an Undirected Graph having unit weight, Find the shortest path from src to all the vertex and if it is unreachable to reach any vertex, then return -1 for that vertex. There is a robot initially located at the top-left corner (i. Find K vertices in the graph which are connected to at least one of remaining vertices. Explanation: After reducing the weight of the edge connecting 1 and 2 by half modifies its new weight to 4. Examp. Step 2: Define a function “findLongestFromACell” that takes in a cell’s row and column index, the matrix, and a lookup table. 0 <= m <= 105. first n characters in input string. Your task is to complete the function ShortestPath () which takes a string S and returns an array of strings containing the. ​Example 2:Min cost path using Dijkstra’s algorithm: To solve the problem follow the below idea: We can also use the Dijkstra’s shortest path algorithm to find the path with minimum cost. Distance from the Source (Bellman-Ford Algorithm) | Practice | GeeksforGeeks. Eulerian Circuit is an Eulerian Path which starts and ends on the same vertex. The Floyd-Warshall algorithm, named after its creators Robert Floyd and Stephen Warshall, is a fundamental algorithm in computer science and graph theory. Practice Given an undirected and unweighted graph and two nodes as source and destination, the task is to print all the paths of the shortest length between the given source and destination. in order to generate different substring. Bellman-Ford Algorithm. At the time of BFS maintain an array of distance [n] and initialize it to zero for all vertices. Therefore, print 8. Bellman-Ford Algorithm: It works for all types of graphs given that negative cycles does not exist in that graph. 2K 161 You have an undirected, connected graph of n nodes labeled from 0 to n - 1. Being at node 2, we need to take two steps ahead in order to reach. Your Task: Your task is to complete the function isNegativeWeightCycle () which takes n and edges as input paramater and returns 1 if graph contains negative weight cycle otherwise returns 0. Bellman–Ford algorithm is slower than Dijkstra’s Algorithm, but it can handle negative weights edges in the graph, unlike Dijkstra’s. Recommended: Please solve it on “ PRACTICE ” first, before moving on to the solution. Initially, the shortest path between any two nodes u and v is v (that is the direct edge from u -> v). Approach: The idea is to traverse all vertices of the graph using BFS and use priority queue to store the vertices for which the shortest distance. Note: You can only move left, right, up and down, and only through cells that contain 1. The task is to find the shortest path with minimum edges i. Let arr [] be given set of strings. Time Complexity: O(n*n*L) where n is the length of the input string and L is the maximum length of word in the dictionary. There is a cycle in a graph only if there is a back edge present in the graph. We have discussed eulerian circuit for an undirected graph. Complete function shortestPath() which takes two integers Num1 and Num2 as input parameters and returns the distance of the shortest path from Num1 to Num2. Problem: Given the adjacency list and number of vertices and edges of a graph, the task is to represent the adjacency list for a directed graph. Note: The Graph doesn't contain any negative weight cycle. Jobs. Therefore, follow the steps below to solve the problem: Perform Depth First Search traversal on the tree starting from the root node. The task is to find the&nbsp;lowest common ancestor of the given two nodes. Explanation: The first and last node of the input sequence is 1 and 4 respectively. Initialising the Next array. If the popped node is the destination node, return its distance. 2) Assign a distance value to all vertices in the input graph. Time Complexity: O (N), the time complexity of this algorithm is O (N), where N is the number of nodes in the tree. Back to Explore Page. Initialize dist [] = {INF, INF,. Output: Length -> 3 , Path -> ( 1, 3 ) and ( 3, 1 ) In the first example, the minimum length of the shortest path is equal to the maximum sum of the points, which is 1+3 or 2+2. Explanation: Starting from the source node 1, the graph contains cycle as 1 -> 2 -> 3 -> 1. Distance between two nodes of binary tree with node values from. Johnson’s algorithm finds the shortest paths between all pairs of vertices in a weighted directed graph. While there are non-empty buckets:. not appeared before, then. Assume that we need to find reachable nodes for n nodes, the time complexity for this solution would be O (n* (V+E)) where V is number of nodes in the graph and E is number of edges in the graph. Like Prim’s MST, we generate a SPT (shortest path tree) with a given source as a root. The distance between the two nodes i and j will be equal to dist (i, LCA (i, j)) + dist (j, LCA (i. Example 1: Input:&nbsp;&nbsp; V = 5, E = 5 adj. Note: edges[i] is defined as u,. Feeling lost in the world of random DSA topics, wasting time without progress?. Output. In this problem statement, we have assumed the source vertex to be ‘0’. Auxiliary Space: O (V) 5. The following code prints the shortest distance from the source_node to all the other nodes in the graph. Given the following&nbsp;grid&nbsp;containing alphabets from A-Z and&nbsp; a string S. We initialize distances to all vertices as minus infinite and. Given a square maze containing positive numbers, find all paths from a corner cell (any of the extreme four corners) to the middle cell. + 3 more. Start from the given start word. Discuss. The idea is to use the Bellman–Ford algorithm to compute the shortest paths from a single source vertex to all the other vertices in a given weighted digraph. Practice. In the maze matrix, 0 means the block is a dead end and 1 means the block can be used in the path from source to destination. Find shortest possible path to type all characters of given string using the remote. Given an unweighted graph, a source, and a destination, we need to find the shortest path from source to destination in the graph in the most optimal way. 1) Initialize distances of all vertices as infinite. Courses. Given a directed graph where every edge has weight as either 1 or 2, find the shortest path from a given source vertex ‘s’ to a given destination vertex ‘t’. Complete the function shortest path () which takes a 2d vector or array edges representing the edges of undirected graph with unit weight, an integer N as number nodes, an integer. given data and NULL left and right pointers. Your task is to complete the function minimumCostPath () which takes grid as input parameter and returns the minimum cost to react at bottom right cell from top left cell. This algorithm can be used on both weighted and unweighted graphs. Output: 3. You will need to use the property of the topological. Follow the steps mentioned below to implement the idea: Create a recursive function. More formally a Graph is composed of a set of vertices ( V ) and a set of edges ( E ). Minimum weighted cycle is : Minimum weighed cycle : 7 + 1 + 6 = 14 or 2 + 6 + 2 + 4 = 14. This gives the shortest path. . There can be atmost V elements in the stack. Following figure is taken from this source. Johnson's algorithm for All-pairs shortest paths; Shortest Path in Directed Acyclic Graph; Multistage Graph (Shortest Path) Shortest path in an unweighted graph; Karp's minimum mean (or average) weight cycle algorithm; 0-1 BFS (Shortest Path in a Binary Weight Graph) Find minimum weight cycle in an undirected graphExplanation: There exists no path from start to end. Here is a Java example of a shortest path genetic algorithm. , we use Topological Sorting . If there is no possible path, return -1. Follow the steps. Back to Explore Page. This algorithm is used to find a loop in a linked list. Practice. Menu. Then the LIP value for cell m [0] [0] will be the answer. , str [n-1] of str has. There are. Below is the implementation of the above approach: C++. An Efficient Solution doesn’t require the generation of subsequences. Find the shortest path from sr. e. Note: One can move from node u to node v only if there's an edge from u to v. A shortest path from S to X must have its next-to-last vertex in S . Space Complexity: The space complexity of Dijkstra’s algorithm is O (V), where V is the number of vertices in the graph. Below are steps. ArrayList; import java. Prerequisite: Dijkstra’s shortest path algorithm. Use Breadth First Search to find the solution optimally. Follow the below steps to solve the problem: Declare a 2-D array count of size M * N. Example1: Input: N = 4, M = 2 edge = [[0,1,2],[0,2,1] Output: 0 2 1 -1 Explanation: Shortest path from 0 to 1 is 0->1 with edge weight 2. Create a Set to store all the visited words in current path and once the current path is completed, erase all the visited words. "contribute", "practice"} word1 = "geeks" word2 = "practice" Output: 2 Explanation: Minimum distance between the words "geeks" and "practice" is 2. A falling path will start at any element in the first row and ends in last row. 0-1 BFS (Shortest Path in a Binary Weight Graph) Shortest path between two nodes in array like representation of binary tree. You can also go from S=1 to T=8 via (1, 2, 5, 8) or (1, 4, 6, 7, 8) but these paths are not shortest. From each cell you can either move only to right or down. It's based on the observation that edge for which dist + edge_weight is minimum is on the path (when looking backwards). e East, West, North, South) but his friend gave him a long route, help a person to find minimum Moves so that he can reach to the destination. Given a DAG, print all topological sorts of the graph. Given a path in the form of a rectangular matrix having few. The task is to find the minimum sum of a falling path through A. The shortest path between 1 and 4 is 1 -> 3 -> 4 hence, the output is NO for the 1st example. Find All possible paths from top left to bottom right. step 1 : If graph is Eulerian, return sum of all edge weights. The robot tries to move to the bottom-right corner (i. If there is only one topological sort. Both the strings are in uppercase latin alphabets. In this article we’re focusing on the differences between shortest path algorithms that are: Depth-First Search (DFS) Breadth-First Search (BFS) Multi-Source. } and dist [s] = 0 where s is the source. We then work backwards from the target vertex t to the source vertex s. Courses. The faster one is called the fast pointer and the. Given a weighted, directed and connected graph of V vertices and E edges, Find the shortest distance of all the vertex's from the source vertex S. Find the length of the shortest transformation sequence from startWord to targetWord. Initialising the Next array. U = 1, V = 3. Algorithm: Steps involved in finding the topological ordering of a DAG: Step-1: Compute in-degree (number of incoming edges) for each of the vertex present in the DAG and initialize the count of visited nodes as 0. (The values are returned as vector in cpp, as. Note that this is a simple version of the typical Maze problem. If k is more that height of tree, nothing should be prin. For example, consider below graph. Find the length of the shortest transformation sequence from startWord to targetWord. Below is BFS based solution.