塔子哥在一个广场上散步,广场上有 n x n 个格子。每个格子都有一个箭头,
'^'表示走到这个格子后要向上走,'v'表示走到这个格子后要向下走,'<'表示走到这个格子后要向左走,'>'表示走到这个格子后要向右走。
塔子哥每次离开一个格子后,离开的那个格子的箭头方向就会变成反向,即'^'变成'v','v'变成'^','<'变成'>','>'变'<'。
直接模拟,维护当前的位置以及走过的格子数量,越过边界即可以退出。对于四角边界,只要其第一次经过的时候没有出去,那么第二次到达必然出去,由于不可能存在不经过四角边界的循环,所以一定有解。
这里可以用到一个方便的技巧,将每个符号映射为下标0,1,2,3,其中0和1相反,2和3相反,每次下标x取反只需要x和1异或。
Java