NAKANJ - Minimum Knight moves !!!
Anjali and Nakul are good friends. They both had a quarrel recently while playing chess. Nakul wants to know the minimum number of moves a knight takes to reach from one square to another square of a chess board (8X8). Nakul is brilliant and he had already written a program to solve the problem. Nakul wants to know whether Anjali can do it. Anjali is very weak in programming. Help her to solve the problem.
A knight can move in the shape of an "L" in a chessboard - two squares either forward, backward, left, or right and then one square to its left or right. A knight move is valid if it moves as mentioned above and it is within the boundary of the chessboard (8 X 8).
There are T test cases in total. The next T lines contain two strings (start and destination) separated by a space.
The strings start and destination will only contain two characters - First character is an alphabet between 'a' and 'h' (inclusive), Second character is a digit between '1' and '8' (inclusive) - (Quotes just for clarity).
To know the knight moves more clearly refer to the above figure.
Print the minimum number of moves a knight takes to reach from start to destination in a separate line.
1 <= T <= 4096
Input: 3 a1 h8 a1 c2 h8 c3 Output: 6 1 4
If facing run time error make sure to give space to nul charater of string for storing.
building the graph took me half an hour, otherwise easy bfs problem, anyways AC in one go ;)
AC in one go! Thanks to queue and pair stl in c++ :)
AC IN ONE GO!
damn irritating runtime error for a very stupid statement missing,otherwise enjoyed doing it
Very tricky, at first I thought it is an easy-pizy one.
U need to find minimum no of moves. And here it costs 1 in each move so bfs also can work. DFS cannot work here.Last edit: 2017-02-05 18:53:26
CAN IT BE SOLVED USING DFS?
ny first bfs :D