Prime Path - SPOJ. The tag to question says BFS but how to use BFS in this question?
Asked by: Rishabh_Sethi on April 7, 2019, 6:34 p.m. Last updated on April 7, 2019, 6:34 p.m.
Well, as the questions says, you gotta find the minimum no of ways the transformation can be done in, you basically need to go through each step of transformation which can be realised by a breadth-first-traversal.
Use a
queue < pair<int, int> > myQueue;
to keep track of room number and their tranform level. The initial room number will have a tranform_level of 0.
Take the input, transform one of its digit, check for prime, increment the transform_level by 1 for the modified room number and enqueue. All possible configurations of the room number will be present in the Queue until you find the destination room number. Since it's a BFS, you wont need to keep track of the best transformation. The Algorithm will take care of it. Now, after a few iterations, if you dequeue the queue and get the result, the transform_level associated with that dequeued string would give you the answer.