LeetCode - 字母板上的路径

1138. 字母板上的路径

刚看到这道题的时候,我居然想用搜索去做这道题,其实有更优解,用 / + %算会更加的快,只需要遍历一次即可.假如说我们要找n,n是第13个字母,那他就位于 13 / 5 = 2, 13 % 5 = 3.他就位于三行三列(a为0,0),知道了原理,代码就好写了.

class Solution {
public:
    string alphabetBoardPath(string target) {
        string ans;
        int x = 0, y = 0;
        string v, h;
        for (const auto& it : target)
        {
            int nx = (it - 'a') / 5, ny = (it - 'a') % 5;
            
            if (nx > x)
            {
                v = string(abs(nx - x), 'D');
            }
            else 
            {
                v = string(abs(nx - x), 'U');
            }

            if (ny > y)
            {
                h = string(abs(ny - y), 'R');
            }
            else 
            {
                h = string(abs(ny - y), 'L');
            }

            ans += (it != 'z'? v + h : h + v) + '!';
            x = nx, y = ny;
        }
        return ans;
    }
};

相关推荐

  1. leetcode电话号码字母组合

    2024-03-31 22:24:06       24 阅读
  2. LeetCode 17.电话号码字母组合

    2024-03-31 22:24:06       13 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-31 22:24:06       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-31 22:24:06       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-31 22:24:06       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-31 22:24:06       20 阅读

热门阅读

  1. 2024.2.3力扣每日一题——石子游戏7

    2024-03-31 22:24:06       15 阅读
  2. 6 字符串、元组和字典

    2024-03-31 22:24:06       14 阅读
  3. Unity 通过鼠标移动和LineRenderer组件实现画线功能

    2024-03-31 22:24:06       15 阅读
  4. stm32通过串口发送float数据的方法

    2024-03-31 22:24:06       13 阅读
  5. 求整数各个数位上的数字之和 C语言

    2024-03-31 22:24:06       14 阅读
  6. C++ //CCF-CSP计算机软件能力认证 201312-2 ISBN号码

    2024-03-31 22:24:06       15 阅读
  7. spring系列-动态注册bean

    2024-03-31 22:24:06       17 阅读
  8. 微微科技遇到的问题总结

    2024-03-31 22:24:06       17 阅读
  9. 设计模式之命令模式 ,Php高级编程

    2024-03-31 22:24:06       15 阅读
  10. 正则表达式

    2024-03-31 22:24:06       17 阅读