Leetcode 2119.反转两次的数字

news2025/4/3 10:15:59

反转 一个整数意味着倒置它的所有位。

  • 例如,反转 2021 得到 1202 。反转 12300 得到 321 ,不保留前导零 。

给你一个整数 num ,反转 num 得到 reversed1 ,接着反转 reversed1 得到 reversed2 。如果 reversed2 等于 num ,返回 true ;否则,返回 false 。

示例 1:

输入:num = 526
输出:true
解释:反转 num 得到 625 ,接着反转 625 得到 526 ,等于 num 。

示例 2:

输入:num = 1800
输出:false
解释:反转 num 得到 81 ,接着反转 81 得到 18 ,不等于 num 。 

示例 3:

输入:num = 0
输出:true
解释:反转 num 得到 0 ,接着反转 0 得到 0 ,等于 num 。

一、信息

1.反转的定义

2.这道题目的目的是给我一个整数num,反转num得到reversed1,接着反转reversed1得到reversed2,如果reversed2等于num,返回true否则false

二、分析

条件1:告诉我反转是什么

条件2:告诉我返回值的类型和规则,其实很简单因为返回torf因此我们可以定义函数的类型位布尔类型返回布尔值即可。

思路:

看到这道题目我有一条思路

第一条路:我们可以用取余和取百分比的不断获取整数num的个十百千位然后逆序然后再用同样的函数调用一边即可我的答案的第一部分首先考虑了实现一个反转整数的函数。我采用了常见的通过模10取余数得到数字的最后一位,然后整除10来移除最后一位的方法,来实现整数的反转。这个思考过程较为直接和基础,是初学者常用的解题方法。

第二条思路

五、实现 

我的答案:

C++:

#include <stdio.h>
#include <stdbool.h>

int reverse(int num) {
    int reversed = 0;
    while (num > 0) {
        int remainder = num % 10;
        reversed = reversed * 10 + remainder;
        num = num / 10;
    }
    return reversed;
}

bool isReversedTwiceTheSame(int num) {
    int reversed1 = reverse(num);
    int reversed2 = reverse(reversed1);
    return reversed2 == num;
}

int main() {
    int num1 = 526;
    int num2 = 1800;
    int num3 = 0;

    printf("%d -> %s\n", num1, isReversedTwiceTheSame(num1) ? "true" : "false");
    printf("%d -> %s\n", num2, isReversedTwiceTheSame(num2) ? "true" : "false");
    printf("%d -> %s\n", num3, isReversedTwiceTheSame(num3) ? "true" : "false");

    return 0;
}

Leetcode题解:

 源代码:

#include <stdbool.h>

bool isSameAfterReversals(int num) {
    return num == 0 || num % 10 != 0;
}

总结:

学到了什么?

从这道题目中,我们可以学到几个关键的概念和编程实践:

1. **数学思维**:
   - **充分必要条件**的思考是解题的关键。首先考虑何时两次反转会得到原数,然后思考这些条件是不是必要的,是不是充分的。
   - **模运算**:通过对10取模来判断一个数的个位数。

2. **编程思维**:
   - 逻辑简化:题目可能看起来复杂,需要多步操作,但有时候通过逻辑推理和数学运算可以极大地简化问题,例如这道题目中,无需实际进行反转操作,通过判断就可以得到结果。
   - 代码优化:简化逻辑并不总是降低代码的可读性。在许多情况下,它实际上会使代码变得更清晰,更易于理解,同时还提高了代码的效率。

3. **细节处理**:
   - 对于特殊的边界情况,例如这里的0,需要单独考虑。
   - 注意题目中的条件限制和例子,这会帮助我们更快地理解题目要求。

4. **问题分析与解决策略**:
   - 在解决问题时,我们首先需要深入理解问题,分析问题的本质。这道题的本质是考察反转操作对数的位数的影响,以及如何通过数学方法简化计算。
   - 其次,我们需要寻找解决问题的策略。这可能涉及到对问题进行逐步分解,或者转化为更容易解决的问题。

通过综合运用数学知识、编程技能、逻辑分析和解决问题的策略,我们可以更有效地解决编程问题。

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

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

相关文章

Centos7配置firewalld防火墙规则

这里写自定义目录标题 欢迎使用Markdown编辑器一、简单介绍二、特点和功能2.1、区域&#xff08;Zone&#xff09;2.2、运行时和永久配置2.3、服务和端口2.4、动态更新2.5、连接跟踪2.6、D-Bus接口 三、设置规则3.1、启动防火墙服务3.2、新建防火墙规则的服务&#xff0c;添加端…

C/C++进程超详细详解【中部分】(系统性学习day07)

目录 前言 一、守护进程 1.概念 2.守护进程创建的原理&#xff08;如图清晰可见&#xff09; 3.守护进程的实现&#xff08;代码块&#xff09; 二、dup和dup2 1&#xff0c;复制文件描述符 2.文件描述符重定向 三、系统日志 1&#xff0c;打开日志 2&#xff0c;向日…

【MATLAB】字体美化和乱码

文章目录 前言首先说说说字体美化乱码到底是怎么导致的&#xff1f;1 字体导致的乱码2 编码导致的乱码总结 前言 最近打开MATLAB&#xff0c;又发现了一个问题&#xff1a;编辑器中的中文输入在命令行或者说终端输出竟然是乱码&#xff0c;然后赶紧翻阅了一下此前的博客以及未发…

基于Java的校园资料分享平台设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

嵌入式Linux应用开发-基础知识-第十八章系统对中断的处理①

嵌入式Linux应用开发-基础知识-第十八章系统对中断的处理 第十八章 Linux 系统对中断的处理①18.1 进程、线程、中断的核心&#xff1a;栈18.1.1 ARM 处理器程序运行的过程18.1.2 程序被中断时&#xff0c;怎么保存现场18.1.3 进程、线程的概念 18.2 Linux系统对中断处理的演进…

Python实用技术二:数据分析和可视化(2)

目录 一&#xff0c;多维数组库numpy 1&#xff0c;操作函数&#xff1a;​ 2&#xff0c;numpy数组元素增删 1&#xff09;添加数组元素 2&#xff09;numpy删除数组元素 3&#xff09;在numpy数组中查找元素 4&#xff09;numpy数组的数学运算 3&#xff0c;numpy数…

windows系统利用powershell查看系统支持那些Windows功能选项

在PowerShell中&#xff0c;我们可以使用Get-WindowsOptionalFeature cmdlet命令来查看Windows功能选项。 打开PowerShell 输入以下命令&#xff1a;将结果输出到1.log Get-WindowsOptionalFeature -Online >1.log 可以看到在指定路径下看到生成了文件 打开查看内容&…

Linux基础指令(六)

目录 前言1. man 指令2. date 指令3. cal 指令4. bc 指令5. uname 指令结语&#xff1a; 前言 欢迎各位伙伴来到学习 Linux 指令的 第六天&#xff01;&#xff01;&#xff01; 在上一篇文章 Linux基本指令(五) 中&#xff0c;我们通过一段故事线&#xff0c;带大家感性的了…

数学建模Matlab之优化类方法

本文还是来源于http://t.csdnimg.cn/P5zOD&#xff0c;但肯定不可能只有这些内容&#xff0c;否则那位作者应该会打我……&#xff0c;在这里&#xff0c;只是讲解优化类问题比较常用的方法&#xff0c;以TSP问题为例&#xff0c;适合入门。 模拟退火 模拟退火是一种概率算法&a…

软件设计师_数据库系统_学习笔记

文章目录 3.1 数据库模式3.1.1 三级模式 两级映射3.1.2 数据库设计过程 3.2 ER模型3.3 关系代数与元组演算3.4 规范化理论3.5 并发控制3.6 数据库完整性约束3.7 分布式数据库3.8 数据仓库与数据挖掘 3.1 数据库模式 3.1.1 三级模式 两级映射 内模式直接与物理数据库相关联的 定…

PWN Test_your_nc Write UP

目录 PWN 00 解题过程 总结归纳 PWN 01 解题过程 总结归纳 PWN 02 解题过程 总结归纳 PWN 03 解题过程 总结归纳 PWN 04 解题过程 总结归纳 CTF PWN 开始&#xff01; 冲就完了 PWN 00 解题过程 ssh远程链连接 ssh ctfshowpwn.challenge.ctf.show -p28151 输…

Git使用【上】

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;那个传说中的man的主页 &#x1f3e0;个人专栏&#xff1a;题目解析 &#x1f30e;推荐文章&#xff1a;题目大解析3 前言 先前有些git命令我在我的其它文章里面已经写过&#xff0c;若要查看可参考【Linu…

嵌入式Linux应用开发-基础知识-第十八章系统对中断的处理②

嵌入式Linux应用开发-基础知识-第十八章系统对中断的处理② 第十八章 Linux系统对中断的处理 ②18.3 Linux中断系统中的重要数据结构18.3.1 irq_desc数组18.3.2 irqaction结构体18.3.3 irq_data结构体18.3.4 irq_domain结构体18.3.5 irq_chip结构体 18.4 在设备树中指定中断_在…

【Python】返回指定时间对应的时间戳

使用模块datetime&#xff0c;附赠一个没啥用的“时间推算”功能(获取n天后对应的时间 代码&#xff1a; import datetimedef GetTimestamp(year,month,day,hour,minute,second,*,relativeNone,timezoneNone):#返回指定时间戳。指定relative时进行时间推算"""根…

前端开发网站推荐

每个人都会遇见那么一个人&#xff0c;永远无法忘却&#xff0c;也永远不能拥有。 以下是一些可以用来查找和比较前端框架的推荐网站&#xff1a; JavaScript框架比较&#xff1a; 这些网站提供了对不同JavaScript框架和库的详细比较和评估。 JavaScripting: 提供了大量的JavaS…

深入了解 Linux 中的 AWK 命令:文本处理的瑞士军刀

简介 在Linux和Unix操作系统中&#xff0c;文本处理是一个常见的任务。AWK命令是一个强大的文本处理工具&#xff0c;专门进行文本截取和分析&#xff0c;它允许你在文本文件中查找、过滤、处理和格式化数据。本文将深入介绍Linux中的AWK命令&#xff0c;让你了解其基本用法和…

Cesium实现动态旋转四棱锥(2023.9.11)

Cesium实现动态悬浮旋转四棱锥效果 2023.9.11 1、引言2、两种实现思路介绍2.1 思路一&#xff1a;添加已有的四棱锥&#xff08;金字塔&#xff09;模型实现&#xff08;简单但受限&#xff09;2.2 思路二&#xff1a;自定义四棱锥几何模型实现&#xff08;复杂且灵活&#xff…

双指针算法——复写零

双指针算法——复写零&#x1f60e; 前言&#x1f64c;复写零板书分析&#xff1a;解题代码&#xff1a;B站视频讲解 总结撒花&#x1f49e; &#x1f60e;博客昵称&#xff1a;博客小梦 &#x1f60a;最喜欢的座右铭&#xff1a;全神贯注的上吧&#xff01;&#xff01;&#…

VUE3照本宣科——认识VUE3

VUE3照本宣科——认识VUE3 前言一、命令创建项目1.中文官网2.菜鸟教程 二、VUE3项目目录结构1.public2.src&#xff08;1&#xff09;assets&#xff08;2&#xff09;components 3. .eslintrc.cjs4. .gitignore5. .prettierrc.json6.index.html7.package.json8.README.md9.vit…

芒果叶病害数据集(用于图像分类,每类500张照片)

1.数据集介绍 数据类型&#xff1a;240x320 像素的芒果叶图像。数据格式&#xff1a;JPG。图像数量&#xff1a;共有4000张图像。其中约有1800张是不同的叶子图像&#xff0c;其余的是通过缩放和旋转进行制备的。考虑的病害&#xff1a;包括七种病害&#xff0c;分别是炭疽病、…