有口碑的网站建设公司,找人做网站网站,菏泽建设,推荐几个安全没封的网站2021我们从一块字母板上的位置 (0, 0) 出发#xff0c;该坐标对应的字符为 board[0][0]。
在本题里#xff0c;字母板为board [“abcde”, “fghij”, “klmno”, “pqrst”, “uvwxy”, “z”]#xff0c;如下所示。
我们可以按下面的指令规则行动#xff1a;
如果方格存…我们从一块字母板上的位置 (0, 0) 出发该坐标对应的字符为 board[0][0]。
在本题里字母板为board [“abcde”, “fghij”, “klmno”, “pqrst”, “uvwxy”, “z”]如下所示。
我们可以按下面的指令规则行动
如果方格存在‘U’ 意味着将我们的位置上移一行 如果方格存在‘D’ 意味着将我们的位置下移一行 如果方格存在‘L’ 意味着将我们的位置左移一列 如果方格存在‘R’ 意味着将我们的位置右移一列 ‘!’ 会把在我们当前位置 (r, c) 的字符 board[r][c] 添加到答案中。 注意字母板上只存在有字母的位置。
返回指令序列用最小的行动次数让答案和目标 target 相同。你可以返回任何达成目标的路径。
示例 1
输入target “leet” 输出“DDR!UURRR!!DDD!” 示例 2
输入target “code” 输出“RR!DDRR!UUL!R!”
提示
1 target.length 100 target 仅含有小写英文字母。 public String alphabetBoardPath(String target) {StringBuilder sb new StringBuilder();int i0,j0;for (char c : target.toCharArray()) {int row(c-a)/5;int col(c-a)%5;while (irow){i--;sb.append(U);}while (jcol){j;sb.append(R);}while (jcol){j--;sb.append(L);}while (irow){i;sb.append(D);}sb.append(!);}return sb.toString();}func alphabetBoardPath(target string) string {res:var i,j int320,0for _, c : range target {row:(c-a)/5col:(c-a)%5for irow{i--resU}for jcol{jresR}for jcol{j--resL}for irow{iresD}res!}return res
}