Leetcode No. Palindrome Number回文数(c++实现)
2021/8/14 17:05:51
本文主要是介绍Leetcode No. Palindrome Number回文数(c++实现),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1. 题目
https://leetcode.com/problems/palindrome-number/
2. 分析
这一题可以将数字直接反转,如果反转后数字和原数字相同,则一定是回文数。当然对于负数可以直接返回false
具体代码如下:
class Solution { public: bool isPalindrome(int x) { if (x < 0) { return false; } int temp = x; int64_t reverse = 0; while (temp != 0) { reverse = reverse * 10 + temp % 10; temp /= 10; } return reverse == x ? true : false; } };
但是这种算法不够优化,可以只反转后半部分,之后与前一半进行对比即可。
具体代码如下:
class Solution { public: bool isPalindrome(int x) { if (x < 0 || (x != 0 && x % 10 == 0)) { return false; } int reverseHalf = 0;//将x的后一半进行反转,并存储在reverseHalf中 while (reverseHalf < x) {//x只留下前一半(如果x为奇数,中间那一位给后一半) reverseHalf = reverseHalf * 10 + x % 10; x /= 10; } return reverseHalf == x || reverseHalf / 10 == x; } };
参考:https://leetcode.com/problems/palindrome-number/discuss/5165/An-easy-c%2B%2B-8-lines-code-(only-reversing-till-half-and-then-compare)
这篇关于Leetcode No. Palindrome Number回文数(c++实现)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-23DevExpress 怎么实现右键菜单(Context Menu)显示中文?-icode9专业技术文章分享
- 2024-12-22怎么通过控制台去看我的页面渲染的内容在哪个文件中呢-icode9专业技术文章分享
- 2024-12-22el-tabs 组件只被引用了一次,但有时会渲染两次是什么原因?-icode9专业技术文章分享
- 2024-12-22wordpress有哪些好的安全插件?-icode9专业技术文章分享
- 2024-12-22wordpress如何查看系统有哪些cron任务?-icode9专业技术文章分享
- 2024-12-21Svg Sprite Icon教程:轻松入门与应用指南
- 2024-12-20Excel数据导出实战:新手必学的简单教程
- 2024-12-20RBAC的权限实战:新手入门教程
- 2024-12-20Svg Sprite Icon实战:从入门到上手的全面指南
- 2024-12-20LCD1602显示模块详解