曼哈顿距离
class Solution { public String alphabetBoardPath(String target) { int x = 0, y = 0, nx = 0, ny = 0; StringBuffer ans = new StringBuffer(""); for (int i = 0; i < target.length(); i++) { int temp = target.charAt(i) - 'a' ; if (i > 0 && target.charAt(i) == target.charAt(i - 1)) { ans.append("!"); } else { nx = temp / 5; ny = temp % 5; if (ny < y) { for (int z = 0; z < y - ny; z++) ans.append("L"); } if (nx < x) { for (int z = 0; z < x - nx; z++) ans.append("U"); } if (nx > x) { for (int z = 0; z < nx - x; z++) ans.append("D"); } if (ny > y) { for (int z = 0; z < ny - y; z++) ans.append("R"); } ans.append("!"); x = nx; y = ny; } } return ans.toString(); } }