LeetCode-9.回文数(大括号+双目运算符使用)
题目内容
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/palindrome-number/
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。
示例 1:
输入:x = 121
输出:true
示例 2:
输入:x = -121
输出:false
解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入:x = 10
输出:false
解释:从右向左读, 为 01 。因此它不是一个回文数。
示例4
输入:x = -101
输出:false
提示:
−231−2^{31}−231 <= x <= 2312^{31}231 − 1
题解
个人题解(一):
class Solution {public:bool isPalindrome(int x) {if (x < 0) {return false;}// 先统计x的长度int length = 0;int x_length = x;while (x_length != 0){x_length /=10;length += 1;}// 再取后半段和前半段进行对比for (int i = 0; i < length/2; i++){// 先取后面的值int x_temp_r = x / pow(10, i);int temp_r = x_temp_r % 10;// 再取前面的值int x_temp_f = x / pow(10, length-i-1);int temp_f = x_temp_f % 10;if (temp_r != temp_f){return false;}}return true;}
};
执行结果
执行结果:通过
执行用时:8 ms, 在所有 C++ 提交中击败了86.00%的用户
内存消耗:6 MB, 在所有 C++ 提交中击败了11.90%的用户
个人题解(二):
class Solution {public:bool isPalindrome(int x) {if (x < 0 || (x != 0 && x%10 == 0)) return false;if (x == 0) return true;// 先统计x的长度int length = 0;int x_length = x;while (x_length != 0){x_length /=10;length += 1;}// 再取后半段和前半段进行对比for (int i = 0; i < length/2; i++){// 先取后面的值int x_temp_r = x / pow(10, i);int temp_r = x_temp_r % 10;// 再取前面的值int x_temp_f = x / pow(10, length-i-1);int temp_f = x_temp_f % 10;if (temp_r != temp_f){return false;}}return true;}
};
执行结果
执行结果:通过
执行用时:20 ms, 在所有 C++ 提交中击败了24.99%的用户
内存消耗:6 MB, 在所有 C++ 提交中击败了11.90%的用户
注解:
1. 在前面加一些单独的判断,只会增加执行用时,对整个程序的性能没有其他提升;
2. 加上大括号,执行用时会得到很大提升?
3. 为什么这样写
int temp_f = x / pow(10, length-1-i*2) % 10;
会报错?
LeetCode-9.回文数(大括号+双目运算符使用)相关推荐
- [模拟|数位] leetcode 9 回文数
[模拟|数位] leetcode 9 回文数 1.题目 题目链接 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true ...
- 【LeetCode】回文数
个人博客:https://jacob.org.cn package leetcode.editor.cn;//判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. ...
- LeetCode 9. 回文数
文章目录 1. 题目信息 2. 解题 1. 题目信息 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1:输入: 121 输出: true 示例 2:输 ...
- leetcode isPalindrome (回文数判断)
回文很简单,就是正着读和反着读一样,要判断一个数是否为回文数只需要判断正反两个是不是相等即可. 再往深了想一下,只需要判断从中间分开的两个数一个正读,一个反读相等即可. 代码: class Solut ...
- 20200119:(leetcode)回文数(3种解法)
回文数 题目 基本思路 代码实现 题目 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true 示例 2: 输入: -1 ...
- Leetcode 9. 回文数(Palindrome Number)
判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向 ...
- leetcode 9 --- 回文数
1 题目 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 2 解法 2.1 初版 2.1.1 思路 由于题目不允许把数直接转化为字符串, 所以想到了把数的每一 ...
- leetcode记录-回文数
判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向 ...
- LeetCode - 9. 回文数
9. 回文数 class Solution {public boolean isPalindrome(int x) {String s = String.valueOf(x);char[] chars ...
- LeetCode 9. 回文数 Palindrome Number
判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向 ...
最新文章
- 人脸妆容迁移---研究和思考
- Winpcap进行抓包,分析数据包结构并统计IP流量
- 使用 ZwUnmapViewOfSection 卸载并替换内存镜像
- JQuery + Json 练习随笔
- BUU OJ 做题记录
- Spring学习总结(25)——注解@PostConstruct和@PreDestroy使用总结
- 想写好前端,先练好内功
- [转载] 蓝胡子国王的金钥匙
- 使用emacs作为mysql的客户端
- 10-20210308华为海思Hi3516DV300在鸿蒙系统下测试网络(以太网+WIFI)
- 【DNS应用案例】智能DNS赋能海运集团全球域名体系建设
- 怎样自动关闭计算机,如何设置电脑自动关机,教您电脑怎样设置自动关机
- E4A(易安卓)学习——第一个APP
- https://ipcrs.pbccrc.org.cn/
- SD卡CF卡U盘硬盘等磁盘属性显示为0字节怎么恢复数据
- 将UTC日期字符串转为本地时间字符串,如@yyyy-MM-dd'T'HH:mm:ssZ转换为本地时间
- 学习累了休息一下——————看完不笑你厉害
- Android开发——跳转到应用商店以及app详情页、获取手机硬件信息、验证app是否存在
- C语言<string.h>常用函数整理
- 企业办公共享文档用哪个软件好?