2026-08-24:检查相邻数字差。用go语言,给定一个纯数字字符串,你需要检查其中任意两个紧挨着的数字,它们数值上的差距是否都不会超过 2。 如果整串数字中所有相邻位置都满足这个条件,就返回“是”

发布时间:2026/10/17 8:08:10

2026-08-24:检查相邻数字差。用go语言,给定一个纯数字字符串,你需要检查其中任意两个紧挨着的数字,它们数值上的差距是否都不会超过 2。 如果整串数字中所有相邻位置都满足这个条件,就返回“是” 2026-08-24检查相邻数字差。用go语言给定一个纯数字字符串你需要检查其中任意两个紧挨着的数字它们数值上的差距是否都不会超过 2。如果整串数字中所有相邻位置都满足这个条件就返回“是”true只要有一处相邻数字的差值大于 2就返回“否”false。这里的差值指的是两个数字相减后取绝对值。2 s.length 100。s 仅由数字组成。输入 s “132”。输出 true。解释s[0] 和 s[1] 处数字的绝对差为 abs(1 - 3) 2。s[1] 和 s[2] 处数字的绝对差为 abs(3 - 2) 1。由于两个差值都至多为 2因此答案为 true。题目来自力扣3931。详细步骤分解第一步获取输入字符串程序接收一个字符串s例如132。这个字符串只包含数字字符’0’到’9’长度在2到100之间。第二步准备遍历我们要检查的是相邻位置所以需要从字符串的第一个字符开始一直检查到倒数第二个字符。对于长度为n的字符串需要检查的位置对是(0,1)、(1,2)、…、(n-2,n-1)总共n-1对。第三步逐个检查相邻数字对在每次循环中取出当前位置的字符s[i]和下一个位置的字符s[i1]将这两个字符转换成它们对应的整数值。字符’0’对应整数01’对应整数1依此类推。在Go语言中对字符做int()转换会得到该字符的ASCII码比如’0’是481’是49所以两个字符的ASCII码差值就等于它们所代表数字的差值因此可以直接用ASCII码相减。计算这两个整数的绝对差值。如果差值为负数就取它的相反数如果为正或零就保持原值。将这个绝对差值与2进行比较如果大于2说明这一对相邻数字不符合要求立即返回false整个函数结束。第四步完成全部检查如果循环完整执行完毕没有遇到任何差值大于2的情况说明所有相邻数字对都满足条件此时返回true。第五步输出结果在主函数中将返回的布尔值打印出来在Go中布尔值的默认输出就是true或false。针对示例132的执行过程第一次循环检查位置0和1字符’1’和’3’ASCII码分别是49和51差值绝对值为2不大于2继续。第二次循环检查位置1和2字符’3’和’2’ASCII码分别是51和50差值绝对值为1不大于2继续。循环结束所有相邻对都检查通过返回true并打印输出。时间复杂度和空间复杂度时间复杂度O(n)其中n是字符串的长度。程序只需要遍历一次字符串对每个相邻位置做常数时间的计算和比较操作。最坏情况下如果所有相邻差值都满足条件会检查n-1对如果中途发现不符合则提前终止但总体仍不超过n-1次操作。因此时间复杂度与字符串长度呈线性关系。额外空间复杂度O(1)即常数级别。程序在检查过程中只使用了几个临时变量来存储字符值、差值等没有使用随输入规模增长的额外数据结构如数组、切片、映射等。无论字符串多长占用的额外内存空间都是固定的少量字节。Go完整代码如下packagemainimport(fmt)funcisAdjacentDiffAtMostTwo(sstring)bool{fori:rangelen(s)-1{ifabs(int(s[i])-int(s[i1]))2{returnfalse}}returntrue}funcabs(xint)int{ifx0{return-x}returnx}funcmain(){s:132result:isAdjacentDiffAtMostTwo(s)fmt.Println(result)}Python完整代码如下# -*-coding:utf-8-*-defabs_value(x:int)-int:return-xifx0elsexdefis_adjacent_diff_at_most_two(s:str)-bool:foriinrange(len(s)-1):ifabs_value(ord(s[i])-ord(s[i1]))2:returnFalsereturnTrue# 测试s132resultis_adjacent_diff_at_most_two(s)print(result)C完整代码如下#includeiostream#includestring#includecmathusingnamespacestd;boolisAdjacentDiffAtMostTwo(conststrings){for(size_t i0;is.length()-1;i){if(abs(s[i]-s[i1])2){returnfalse;}}returntrue;}intmain(){string s132;coutboolalphaisAdjacentDiffAtMostTwo(s)endl;return0;}
延伸阅读

更多相关文章

2026/10/17 8:08:02

RAG的工作流程与目标

目录 RAG的工作流程: 知识库的构建: 调用: RAG的目标:如何提高Query和知识库的匹配度 如何优化Query: 如何优化知识库: 扩展:Embedding模型 RAG的工作流程: 上一节…

2026/10/16 12:16:12

Codex Hooks 实战指南:从“安全第一”到“自动化省心”

引言:Hooks 很香,但别急着“全自动” Hooks(钩子)是 Codex 中一个极具吸引力的功能:它允许你在特定事件(如命令执行、会话开始)发生时,自动运行预设的脚本。想象一下,代…

2026/10/16 20:20:40

Kimi LeetCode LCP 31. 变换的迷宫 Rust实现

以下是 LCP 31. 变换的迷宫 的 Rust 实现,采用 BFS 状态压缩 的思路,参考了 C 题解的状态设计 。---解题思路状态设计:f[time][x][y][scroll_state] 表示在时刻 time 位于 (x, y)、卷轴使用状态为 scroll_state 时的最短步数。状态值 含义…

2026/10/17 8:05:04

策略梯度强化学习中的方差与偏差优化:从REINFORCE到GAE

很多人第一次跑通 REINFORCE 的时候,都会遇到一个非常诡异的现象:同一份代码、同一个随机种子,这次训练能跑到两百分,下次直接瘫在二十分。把梯度打印出来一看,更新方向一会儿朝东一会儿朝西,优化器吃掉了所…

2026/10/17 8:05:04

端口镜像与链路聚合:原理、配置与实战避坑指南

1. 为什么我要把端口镜像和链路聚合放在一起讲刚入行那会儿,我一直觉得端口镜像和链路聚合是两码事:一个用来抓包分析,一个用来增加带宽和冗余,八竿子打不着。直到有一次在机房里排查一个"时通时断"的故障,我…

2026/10/17 8:05:04

用Kotlin+XML复现微信界面:RecyclerView与Fragment实战指南

简介:一份基于Android Studio打造的仿微信界面完整工程,面向Android入门与中级开发者,通过实战项目演示如何搭建类似微信的社交应用UI,帮助解决界面设计不知从何下手的问题。资源共1041个文件、压缩包约24.25MB,涵盖XM…

2026/10/17 8:05:04

批量下载IEEE论文:Python脚本自动化文献整理的完整方案

简介:这是一款针对科研人员与高校学生的IEEE论文批量下载工具,基于Python开发,可借助DOI号或搜索关键词,从IEEE Xplore数字图书馆自动获取论文并保存为PDF,大幅节省文献调研和综述撰写时间,尤其适合综述写作…

2026/10/17 8:00:04

C++迷宫游戏:面向对象工程实践与跨平台终端开发

1. 这不是玩具&#xff0c;而是一次扎实的C工程实践 “C迷宫游戏”这五个字&#xff0c;乍看像学生课设作业&#xff0c;但在我带过的几十个模拟项目里&#xff0c;它恰恰是检验C核心能力最锋利的一把尺子——不是考你会不会写 cout << "Hello World" &…

2026/10/16 5:33:43

Python调用Gemini Structured Outputs实现工单路由门禁

客服工单最怕的不是模型“答错一句话”&#xff0c;而是它给出一段看起来合理的说明&#xff0c;程序却从中猜错优先级。通俗做法是&#xff1a;要求模型只交 JSON&#xff08;JavaScript Object Notation&#xff0c;轻量数据格式&#xff09;&#xff0c;再让代码验证它。Gem…

2026/10/16 4:03:48

Spring Boot超市进销存系统毕设实战:从需求拆解到答辩通关

最近带的一个学生项目组里&#xff0c;有A同学跑来问我&#xff1a;选什么毕设题目最稳妥&#xff0c;既能让评审老师觉得工作量够&#xff0c;又不会在答辩时被问到语无伦次。我第一反应就是推荐基于Spring Boot的超市仓库管理系统——也就是超市进销存系统。这个题目乍一看平…

2026/10/15 13:42:16

Flutter StatefulWidget 生命周期核心解析

很多刚开始接触 Flutter 的朋友&#xff0c;在看完一堆“Hello World”和基础组件之后&#xff0c;大概率都会撞上同一堵墙&#xff1a;StatefulWidget 里那堆 initState、build、dispose 方法&#xff0c;到底什么时候被调用&#xff1f;为什么顺序是那样&#xff1f;在里面到…

2026/10/17 0:04:32

PlanarSLAM:面向曼哈顿世界的点线面联合SLAM系统

简介&#xff1a;本资源是面向机器人视觉与SLAM研究者的C开源RGB-D SLAM系统实现&#xff0c;专为结构化室内场景&#xff08;如办公室、走廊&#xff09;设计&#xff0c;通过融合点、线、平面三类几何特征并引入“曼哈顿世界”假设&#xff0c;显著提升位姿跟踪鲁棒性与稠密地…

2026/10/17 0:04:32

TDH Workflow调度实战:从DAG依赖驱动到任务编排与故障排查

1. 从一个调度脚本说起&#xff1a;TDH Workflow到底在解决什么问题第一次接触TDH的Workflow&#xff0c;是在一个数据清洗项目里。当时团队每天要跑几十个ETL任务&#xff0c;任务之间有严格的先后依赖——A表清洗完才能跑B表的关联&#xff0c;B表跑完才能触发C表的聚合。最开…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑