本文主要是介绍力扣每周几题——第一周(23.10.30--23.11.5),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
啥也不废话,今儿是第一周,撸起袖子加油干!
目录
9. 回文数判断——2023.10.30
题目要求
分析与代码解决
9. 回文数判断——2023.10.30
题目要求
给你一个整数 x
,如果 x
是一个回文整数,返回 true
;否则,返回 false
。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
- 例如,
121
是回文,而123
不是。
示例 1:
输入:x = 121 输出:true
示例 2:
输入:x = -121 输出:false 解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入:x = 10 输出:false 解释:从右向左读, 为 01 。因此它不是一个回文数。
提示:
-231 <= x <= 231 - 1
进阶:你能不将整数转为字符串来解决这个问题吗?
代码模版:
class Solution {public boolean isPalindrome(int x) {}
}
分析与代码解决
个人分析:
1. 首先复数不是回文数,在代码的最开始我们就要取 if 排除
2. 如何去对比去回文数呢,我的想法是定义一个整型num,把获取到的x完整的赋值在这个num中,再和x去做的比较,符合就是ture,不符合就是false
3. 怎么去把 x 值上的所有数字转到num上呢,我用的就是用while循环去取模x值上的每一位值,从个位开始,取到一位,就转到num上,在x的基础上去 / 10,以为下一次循环做准备
代码给出
class Solution { // 定义一个方法来判断一个整数是否为回文数 public boolean isPalindrome(int x) { // 如果x小于0,直接返回false,因为负数不是回文数 if (x < 0){ return false; } // 定义两个变量,temp为当前的x,num为最终的反向数字 int temp = x, num = 0; // 使用while循环,当temp不为0时执行循环 while (temp != 0){ // 取temp的最后一位数字(取模10)并赋值给digit int digit = temp % 10; // 将temp除以10,将最后一位数字去掉并赋值给temp temp = temp / 10; // 将digit添加到num的末尾(将num乘以10再加上digit) num = num * 10 + digit; } // 如果num等于x,说明x是回文数,返回true if (num == x){ return true; } else { // 否则返回false,说明x不是回文数 return false; } }
}
这篇关于力扣每周几题——第一周(23.10.30--23.11.5)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!