【LeetCode】每日一题(2)

news2024/11/14 22:33:40

目录

题目:1138. 字母板上的路径 - 力扣(Leetcode)

题目的接口:

解题思路:

代码:

过啦!!!

写在最后:


题目:1138. 字母板上的路径 - 力扣(Leetcode)

题目的接口:

class Solution {
public:
    string alphabetBoardPath(string target) {

    }
};

解题思路:

根据题目,我们发现这个字母表格是有规律的,

他是从a b c d e f g h i j k l m n o p q r s t u v w x y z这样排列的,

而且还排成了一个类似表格的形状,这样我们其实可以用坐标来找每个字母,

那我们就不多想,直接用坐标(x, y)定位每个要查找的字母,然后迭代去找。

最后只要小心一下z字母,不要越界就行,因为z字母的右边是没有字母的,如果

直接往右查找,又或者是倒数第二行的字母直接往下查找,再往左找z,这样都会

造成越界访问,所以要先往上、往左查找。

代码:

class Solution {
public:
    //起始坐标会不断变化,所以传引用
    void push_c(int x,int y,int& prev_x, int& prev_y,char tag, string&s)
    {
        //防止在z时越界访问
        //所以我们先向左查找
        while(prev_y > y)
        {
            prev_y--;
            s.push_back('L');
        }
        //再向上查找
        while(prev_x > x)
        {
            prev_x--;
            s.push_back('U');
        }

        //这样再往下和右就不会越界了
        while(prev_x < x)
        {
            prev_x++;
            s.push_back('D');
        }            
        while(prev_y < y)
        {
            prev_y++;
            s.push_back('R');
        }

        //找到之后插入'!'
        s.push_back('!');
    } 

    string alphabetBoardPath(string target) {
        //创建要返回的字符串
        string s;

        //x和y是目标坐标,prev_x和prev_y是起始坐标
        int x, y, prev_x = 0, prev_y = 0;

        //迭代查找
        for(int i = 0; i < target.size(); i++)
        {
            //计算目标坐标
            x = (target[i] - 'a') / 5;
            y = (target[i] - 'a') % 5;

            //实现查找函数,迭代查找
            push_c(x, y, prev_x, prev_y, target[i], s);
        }

        //返回
        return s;
    }
};

过啦!!!

写在最后:

以上就是本篇文章的内容了,感谢你的阅读。

如果喜欢本文的话,欢迎点赞和评论,写下你的见解。

如果想和我一起学习编程,不妨点个关注,我们一起学习,一同成长。

之后我还会输出更多高质量内容,欢迎收看。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/340362.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python-项目实战--贪吃蛇小游戏-游戏框架搭建(2)

1.游戏框架搭建介绍pygame开发图像界面游戏的几个要素&#xff0c;并且把贪吃蛇游戏的整体框架搭建完成本节知识点包括&#xff1a;pygame的初始化和退出游戏主窗口游戏循环和游戏时钟主窗口背景颜色绘制文本pygame的坐标系游戏事件监听绘制图形定时器事件1.1pygame的初始化和退…

RocketMQ5.0.0消息存储<三>_消息转发与恢复机制

目录 一、消息转发 1. ReputMessageService线程初始化 2. 消息转发更新ConsumeQueue 3. 消息转发更新IndexFile 二、恢复机制 1. Broker加载存储文件 2. Broker正常退出的文件恢复 3. Broker异常退出的文件恢复 三、参考资料 一、消息转发 消息消费队列文件、索引文件…

七大设计原则之单一职责原则应用

目录1 单一职责原则介绍2 单一职责原则应用1 单一职责原则介绍 单一职责&#xff08;Simple Responsibility Pinciple&#xff0c;SRP&#xff09;是指不要存在多于一个导致类变更的原因。假设我们有一个 Class 负责两个职责&#xff0c;一旦发生需求变更&#xff0c;修改其中…

线程池的简单实现:Java线程池初学者必读指南

"作为一名Java开发者&#xff0c;是否曾经遇到过多线程并发的问题&#xff1f;线程数量过多时&#xff0c;会导致资源浪费&#xff0c;应用性能下降&#xff0c;甚至发生线程死锁的情况。那么&#xff0c;有没有一种方法可以有效地管理线程&#xff0c;避免这些问题呢&…

Matlab傅里叶谱方法求解一维波动方程

傅里叶谱方法求解基本偏微分方程—一维波动方程 一维波动方程 对于一根两端固定、没有受到任何外力的弦, 若只研究其中的一段, 在不太长的时间 里, 固定端来不及对这段弦产生影响, 则可以认为固定端是不存在的, 弦的长度为无限大。 这种无界 (−∞<x<∞)(-\infty<x&…

震源机制(Focal Mechanisms)之沙滩球(Bench Ball)

沙滩球包含如下信息&#xff1a; a - 判断断层类型&#xff0c;可根据球的颜色快速判断 b - 判断断层的走向(strike)&#xff0c;倾角(dip) c - 确定滑移角/滑动角(rake) 走向 &#xff0c;倾角&#xff0c;滑移角 如不了解断层的定义&#xff0c;可以先阅读&#xff1a;震…

windows下qt设置网卡ip信息+简单案列(图形化界面设置网卡IP)。

windows设置网卡ip信息的方法 文章目录windows设置网卡ip信息的方法前言一、QProcess修改网卡ip信息1.1 代码实例二、system修改网卡ip信息2.1 代码实例三、qt修改网卡信息案例3.1 设计方法3.2 代码实例3.3 功能测试前言 方法1&#xff1a;QProcess修改网卡ip信息&#xff1b;…

四种方式的MySQL安装

mysql安装常见的方法有四种序号 安装方式 说明1 yum\rpm简单、快速&#xff0c;不能定制参数2二进制 解压&#xff0c;简单配置就可使用 免安装 mysql-a.b.c-linux2.x-x86_64.tar.gz3源码编译 可以定制参数&#xff0c;安装时间长 mysql-a.b.c.tar.gz4源码制成rpm包 把源码制…

Spring boot 实战指南(四):登录认证(OAuth、Cookie、Session、Token)、Spring Security

文章目录一、登录认证方式1.OAuth 认证颁发令牌的四种方式2.Cookie/Session 认证(1)Cookie(2)Session3.Token认证基于JWT的Token认证(spring security)二、Spring boot整合Spring Security(前后端分离)1.快速入门2.认证3.授权参考&#xff1a; 教程 登录认证简介 OAuth 2.0 的一…

Spring项目中用了这种解耦模式,老大对我刮目相看

前言不知道大家在项目中有没有遇到过这样的场景&#xff0c;根据传入的类型&#xff0c;调用接口不同的实现类或者说服务&#xff0c;比如根据文件的类型使用 CSV解析器或者JSON解析器&#xff0c;在调用的客户端一般都是用if else去做判断&#xff0c;比如类型等于JSON&#x…

Python Web开发:用Tornado框架制作一个简易的网站

前言 大家早好、午好、晚好吖 ❤ ~ 今天我们要用Python做Web开发&#xff0c;做一个简单的【表白墙】网站。 众所周知表白墙的功能普遍更多的是发布找人&#xff0c;失物招领&#xff0c;还是一个大家可以跟自己喜欢的人公开表白的平台 Tornado框架简单介绍 在Python当中&am…

SpringMVC笔记【JavaEE】

SpringMVC 1. SpringMVC概念 Spring MVC 是一个Web 框架。Spring MVC 是基于Servlet API构建的。 MVC是 Model&#xff08;模型&#xff09; View&#xff08;视图&#xff09; Controller&#xff08;控制器&#xff09; 的缩写&#xff0c;它是一种设计模式。 视图分为两种&…

2022年山东省中职组“网络安全”赛项比赛任务书正式赛题

2022年山东省中职组“网络安全”赛项 比赛任务书 一、竞赛时间 总计&#xff1a;360分钟 竞赛阶段竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 A模块 A-1 登录安全加固 180分钟 200分 A-2 Nginx安全策略 A-3 日志监控 A-4 中间件服务加固 A-5 本地安全策略…

html的表单标签(form)

目录标题1、表单标签主要有三大类&#xff1a;2、表单标签中常见的属性3、例子代码及结果4、注意&#xff1a;5、表单中特殊的属性表单标签可以用来数据交互&#xff0c;而前面学的六个标签只能发送不能接收。 表单标签的作用就是数据交互1、表单标签主要有三大类&#xff1a; …

搭建本地私有仓库

目录 一、搭建本地私有仓库 1、首先下载registry镜像 2、在daemon.json文件中添加私有镜像仓库地址 3、运行restart容器 4、为镜像打标签 5、上传到私有仓库 6、列出私有仓库的所有镜像 7、列出私有仓库的centos镜像有哪些tag 8、删除原有的centos的镜像&#xff0c;再测试…

双目测距------双目相机V1.0,将双目相机采集到任意一点的深度数据进行串口传输(带源码)

Depth2Uart 双目测距------双目相机V1.0&#xff0c;将双目相机采集到任意一点的深度数据进行串口传输 一、项目说明/Overview 所实现的功能&#xff1a;基于Intel Realsense官方提供的SDK&#xff0c;双目深度相机能获取到相机任何一个像素点距离前方障碍物的距离&#xff0…

电子学会2022年12月青少年软件编程(图形化)等级考试试卷(三级)答案解析

目录 一、单选题(共25题&#xff0c;共50分) 二、判断题(共10题&#xff0c;共20分) 三、编程题(共3题&#xff0c;共30分) 青少年软件编程&#xff08;图形化&#xff09;等级考试试卷&#xff08;三级&#xff09; 一、单选题(共25题&#xff0c;共50分) 1. 默认小猫角色…

FlinkCEP - Flink的复杂事件处理

版本说明 本文中以Flink 1.16.1 版本讲解说明 Note:Flink1.16.1版本相较于之前版本增强的within函数&#xff0c; 支持模式序列中相邻事件间的超时定义&#xff0c;以前版本只支持模式序列中第一个事件到最后一个事件之间的最大时间间隔。 快速开始 基于Kafka connecter 流…

C语言速成(有基础)

linux下的 是一种通用的、面向过程式的计算机编程语言 #include <stdio.h> //#include 预处理命令&#xff0c;用来引用头文件&#xff0c; stdio.h 头文件 int main() //开始 {/* 一个注释 */printf("Hello, World! \n");return 0; …

最强大的人工智能chatGPT不会还有人没用过吧,再不用就out了

&#x1f517; 运行环境&#xff1a;chatGPT &#x1f6a9; 撰写作者&#xff1a;左手の明天 &#x1f947; 精选专栏&#xff1a;《python》 &#x1f525; 推荐专栏&#xff1a;《算法研究》 #### 防伪水印——左手の明天 #### &#x1f497; 大家好&#x1f917;&#x1f9…