LeetCode LCP17速算机器人

news2025/1/11 21:42:48

速算机器人:探索字符指令下的数字变换

在编程的奇妙世界里,我们常常会遇到各种有趣的算法问题,这些问题不仅考验我们的逻辑思维,还能让我们感受到编程解决实际问题的魅力。今天,就让我们一同探讨一个关于速算机器人的有趣题目。

一、问题描述

小扣在秋日市集邂逅了一款神奇的速算机器人。游戏开始时,店家会给出两个数字,分别记为x和y。而小扣需要给出一个仅由大写字母 “A” 和 “B” 组成的字符串s,这个字符串中的每个字符都代表一种特定的运算指令,且字符顺序决定了运算顺序。具体运算规则如下:

  • “A” 运算:让X变为2*X十y。
  • “B” 运算:使y变成 2*y+X。

特别的是,在本次游戏中,店家给出的初始值为X=1,y=0.我们的任务就是根据小扣给出的指令字符串s,计算出最终x与y的和。

二、解题思路

面对这个问题,我们可以采用顺序处理的策略。由于指令字符串中的字符顺序决定了运算顺序,我们只需从左到右依次读取每个字符,并根据字符所代表的运算规则对x和y进行相应的更新。最后,将更新后的x 和y相加,即可得到最终的结果。

三、代码实现

下面是使用 C 语言解决该问题的代码实现:

#include <stdio.h>
#include <string.h>

int calculate(char* s) {
    int x = 1;
    int y = 0;
    int len = strlen(s);
    for (int i = 0; i < len; i++) {
        if (s[i] == 'A') {
            x = 2 * x + y;
        } else if (s[i] == 'B') {
            y = 2 * y + x;
        }
    }
    return x + y;
}

我们首先根据题目要求,将:初始化为1,y初始化为0,这是运算的起始值。同时,通过 strlen(s)获取指令字符串s的长度,并将其存储在 len变量中,以便后续遍历字符串。

使用 for 循环遍历指令字符串s。在每次循环中,通过判断当前字符 s[i] 是 'A' 还是 'B' ,来决定执行相应的运算。如果是 'A' ,则按照规则更新  的值;如果是 'B' ,则对y 进行更新。

当遍历完整个指令字符串并完成所有运算后,将最终的x和y相加,并返回这个和作为结果。

四、代码测试

为了验证代码的正确性,我们可以编写一个简单的测试函数:

int main() {
    char s[] = "AB";
    int result = calculate(s);
    printf("最终 x 与 y 的和为: %d\n", result);
    return 0;
}

在这个测试中,我们定义了一个指令字符串 s 为 "AB" ,调用 calculate 函数计算最终结果,并将结果输出。你可以根据需要修改 s 的值,以测试不同的指令组合。

五、总结与拓展

通过解决这个速算机器人的问题,我们不仅掌握了如何根据特定规则处理字符串指令,还进一步熟悉了 C 语言中的基本运算和循环操作。这道题的解法思路可以拓展到更多类似的基于规则的字符指令处理问题中。例如,当指令的种类增加,或者运算规则变得更加复杂时,我们依然可以沿用这种顺序处理、根据指令进行相应操作的方法。

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

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

相关文章

第R4周:LSTM-火灾温度预测

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 文章目录 一、代码流程1、导入包&#xff0c;设置GPU2、导入数据3、数据集可视化4、数据集预处理5、设置X&#xff0c;y6、划分数据集7、构建模型8、定义训练函…

【python自写包模块的标准化方法】

目标: 自写一个包,提供关于字符串和文件的模块 要求对异常可以检测 str_tools.py: def str_reverse(s):""":param s: 传入的字符串:return: 反转后的字符串"""# i -1# j 0# s2 ""# while i > (-len(s)):# s2 s[i]# …

Win10本地部署大语言模型ChatGLM2-6B

鸣谢《ChatGLM2-6B&#xff5c;开源本地化语言模型》作者PhiltreX 作者显卡为英伟达4060 安装程序 打开CMD命令行&#xff0c;在D盘新建目录openai.wiki if not exist D:\openai.wiki mkdir D:\openai.wiki 强制切换工作路径为D盘的openai.wiki文件夹。 cd /d D:\openai.wik…

【简博士统计学习方法】第1章:1. 统计学习的定义与分类

自用笔记 1. 统计学习的定义与分类 1.1 统计学习的概念 统计学习&#xff08;Statistical Machine Learning&#xff09;是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科。 以计算机和网络为平台&#xff1b;以数据为研究对象&#xff1b;以…

Unity 人体切片三维可视化,可任意裁切切割。查看不同断层的图像。

Unity 人体切片三维可视化&#xff0c;真彩色&#xff0c;可任意裁切切割。查看不同断层的图像。 点击查看效果: 视频效果

汽车基础软件AutoSAR自学攻略(四)-AutoSAR CP分层架构(3) (万字长文-配21张彩图)

汽车基础软件AutoSAR自学攻略(四)-AutoSAR CP分层架构(3) (万字长文-配21张彩图) 前面的两篇博文简述了AutoSAR CP分层架构的概念&#xff0c;下面我们来具体到每一层的具体内容进行讲解&#xff0c;每一层的每一个功能块力求用一个总览图&#xff0c;外加一个例子的图给大家进…

科研绘图系列:R语言绘制Y轴截断分组柱状图(y-axis break bar plot)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍特点意义加载R包数据下载导入数据数据预处理画图输出总结系统信息介绍 Y轴截断分组柱状图是一种特殊的柱状图,其特点是Y轴的刻度被截断,即在某个范围内省略了部分刻度。这种图表…

慧集通(DataLinkX)iPaaS集成平台-数据流程之流程透明化调试功能简介

在线运行流程 查看运行状态 流程第一次执行状态显示 流程第二次执行状态显示&#xff08;由于订单已同步到七星ERP中&#xff0c;由于还是这些订单所以第二次同步时就报错了&#xff09; 点击查看节点组件的详细入参与出参信息 U8C销售订单读取组件执行时详情 入参-查询条件…

PostgreSQL技术内幕22:vacuum full 和 vacuum

文章目录 0.简介1.概念及使用方式2.工作原理2.1 主要功能2.2 清理流程2.3 防止事务id环绕说明 3.使用建议 0.简介 在之前介绍MVCC文章中介绍过常见的MVCC实现的两种方式&#xff0c;一种是将旧数据放到回滚段&#xff0c;一种是直接生成一条新数据&#xff08;对于删除是不删除…

kubernetes第七天

1.影响pod调度的因素 nodeName 节点名 resources 资源限制 hostNetwork 宿主机网络 污点 污点容忍 Pod亲和性 Pod反亲和性 节点亲和性 2.污点 通常是作用于worker节点上&#xff0c;其可以影响pod的调度 语法&#xff1a;key[value]:effect effect:[ɪˈfek…

【CSS】HTML页面定位CSS - position 属性 relative 、absolute、fixed 、sticky

目录 relative 相对定位 absolute 绝对定位 fixed 固定定位 sticky 粘性定位 position&#xff1a;relative 、absolute、fixed 、sticky &#xff08;四选一&#xff09; top&#xff1a;距离上面的像素 bottom&#xff1a;距离底部的像素 left&#xff1a;距离左边的像素…

Redis数据库——Redis快的原因

本文详细介绍redis为什么这么快的原因&#xff0c;这里是本系列文章的总结篇&#xff08;后面会补充一些内容&#xff0c;或者在原文上进行更新迭代&#xff09;&#xff0c;将从各方面出发解释为什么redis快&#xff0c;受欢迎的原因。 文章目录 内存内存数据库预分配内存 数据…

排序:插入、选择、交换、归并排序

排序 &#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作。 稳定性 &#xff1a;假定在待排序的记录序列中&#xff0c;存在多个具有相同的关键字的记录&#xff0c;若经过排序&#xff0c;…

RocketMQ 和 Kafka 有什么区别?

目录 RocketMQ 是什么? RocketMQ 和 Kafka 的区别 在架构上做减法 简化协调节点 简化分区 Kafka 的底层存储 RocketMQ 的底层存储 简化备份模型 在功能上做加法 消息过滤 支持事务 加入延时队列 加入死信队列 消息回溯 总结 来源:面试官:RocketMQ 和 Kafka 有…

赛车微型配件订销管理系统(源码+lw+部署文档+讲解),源码可白嫖!

摘要 赛车微型配件行业通常具有产品多样性、需求不确定性、市场竞争激烈等特点。配件供应商需要根据市场需求及时调整产品结构和库存&#xff0c;同时要把握好供应链管理和销售渠道。传统的赛车微型配件订销管理往往依赖于人工经验和简单的数据分析&#xff0c;效率低下且容易…

公众号如何通过openid获取unionid

通过接口 https://api.weixin.qq.com/cgi-bin/user/info?access_tokenxxxxxxx&langzh_CN 返回的数据如下&#xff1a; 前提是必须绑定 微信开放平台 token如何获取呢 代码如下&#xff1a; String tokenUrl "https://api.weixin.qq.com/cgi-bin/token"; …

半导体数据分析: 玩转WM-811K Wafermap 数据集(二) AI 机器学习

一、数据集回顾 前面我们已经基本了解了WM-811K Wafermap 数据集&#xff0c;并通过几段代码&#xff0c;熟悉了这个数据集的数据结构&#xff0c;这里为了方便各位连续理解&#xff0c;让我们再回顾一下&#xff1a; WM-811K Wafermap 数据集是一个在半导体制造领域广泛使用…

协同过滤算法私人诊所系统|Java|SpringBoot|VUE|

【技术栈】 1⃣️&#xff1a;架构: B/S、MVC 2⃣️&#xff1a;系统环境&#xff1a;Windowsh/Mac 3⃣️&#xff1a;开发环境&#xff1a;IDEA、JDK1.8、Maven、Mysql5.7 4⃣️&#xff1a;技术栈&#xff1a;Java、Mysql、SpringBoot、Mybatis-Plus、VUE、jquery,html 5⃣️…

Python基于YOLOv8和OpenCV实现车道线和车辆检测

使用YOLOv8&#xff08;You Only Look Once&#xff09;和OpenCV实现车道线和车辆检测&#xff0c;目标是创建一个可以检测道路上的车道并识别车辆的系统&#xff0c;并估计它们与摄像头的距离。该项目结合了计算机视觉技术和深度学习物体检测。 1、系统主要功能 车道检测&am…

nexus搭建maven私服

说到maven私服每个公司都有&#xff0c;比如我上一篇文章介绍的自定义日志starter&#xff0c;就可以上传到maven私服供大家使用&#xff0c;每次更新只需deploy一下就行&#xff0c;以下就是本人搭建私服的步骤 使用docker安装nexus #拉取镜像 docker pull sonatype/nexus3:…