From 8a65195b33b6bb1b13fdce1f48d85cfce1acf82b Mon Sep 17 00:00:00 2001 From: YuCheng Hu Date: Tue, 25 Dec 2018 14:39:56 -0500 Subject: [PATCH] =?UTF-8?q?Kayak=20=E4=BB=A3=E7=A0=81=E9=9D=A2=E8=AF=95?= =?UTF-8?q?=E9=A2=98=E4=B8=AD=E7=9A=84=E6=9C=89=E5=85=B3=E6=8C=89=E7=85=A7?= =?UTF-8?q?=E5=9D=90=E6=A0=87=E7=A7=BB=E5=8A=A8=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../interview/KayakRobotMovement.java | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/main/java/com/ossez/codebank/interview/KayakRobotMovement.java diff --git a/src/main/java/com/ossez/codebank/interview/KayakRobotMovement.java b/src/main/java/com/ossez/codebank/interview/KayakRobotMovement.java new file mode 100644 index 0000000000..0a2e94f713 --- /dev/null +++ b/src/main/java/com/ossez/codebank/interview/KayakRobotMovement.java @@ -0,0 +1,46 @@ +package com.ossez.codebank.interview; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * + * @author YuCheng + * + */ +public class KayakRobotMovement { + + private final static Logger logger = LoggerFactory.getLogger(KayakRobotMovement.class); + + /** + * Get coordinates for Robot Movement + * + * @param data + * @return + */ + public static String getCoordinates(String data) { + logger.debug("BEGIN"); + + String retStr = ""; + + int x = 0; + int y = 0; + int[][] move = { { 0, 1 }, { 1, 0 }, { 0, -1 }, { -1, 0 } }; + int dir = 0; + + for (char ch : data.toCharArray()) { + if (ch == 'F') { + x += move[dir][0]; + y += move[dir][1]; + } else if (ch == 'L') { + dir--; + } else if (ch == 'R') { + dir++; + } + dir = (dir + 4) % 4; + } + retStr = x + "," + y; + + return retStr; + } +}