Problem
1113 - Discover the Web
1113 - Discover the Web
Idea Flow
Input_Constraint ~ All operation must be done in O(1)
Question Hints ~ Cake Walk
Conclusion ~ Just follow what problem statement tells.
Learnt lesson ~ Solver need to analyze the time complexity.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | package net.egork; import java.util.ArrayList; import java.util.Scanner; import java.io.PrintWriter; import java.util.Stack; public class L1113 { private static final String FORWARD = "FORWARD"; private static final String VISIT = "VISIT"; private static final String BACK = "BACK"; private static final String QUIT = "QUIT"; private static final String IGNORED = "Ignored"; private static final String URL = "http://www.lightoj.com/"; public void solve(int testNumber, Scanner in, PrintWriter out) { int testCase; testCase = in.nextInt(); String query[]; String current; for (int i = 1; i <= testCase; i++) { System.out.println("Case " + i + ":"); Stack<String> forwardStack = new Stack<String>(); Stack<String> backwardStack = new Stack<String>(); current = URL; while (true) { query = in.nextLine().split(" "); if (query[0].equals(FORWARD)) { if (forwardStack.isEmpty()) { System.out.println(IGNORED); } else { backwardStack.add(current); current = forwardStack.peek(); forwardStack.pop(); System.out.println(current); } } else if (query[0].equals(VISIT)) { backwardStack.push(current); forwardStack.clear(); current = query[1]; System.out.println(current); } else if (query[0].equals(BACK)) { if (backwardStack.isEmpty()) { System.out.println(IGNORED); } else { forwardStack.add(current); current = backwardStack.peek(); backwardStack.pop(); System.out.println(current); } } else if (query[0].equals(QUIT)) { break; } } } } } |
No comments:
Post a Comment