LeetCode之路——Palindrome Number
来源:互联网 发布:目前淘宝卖什么最火 编辑:程序博客网 时间:2024/06/05 06:15
题目要求:判断一个数是否为回文数,空间复杂度:O(1)
思路:因为空间复杂度要求是O(1),所以不能转成字符串然后用第一个和最后一个比较,只能通过取整数的最高位和最低位比较,若相等则去掉最高位和最低位循环比较,若不等返回false。
特殊情况:若为负数,则不是回文数。
贴上代码:
package leetcode;import javax.jws.soap.SOAPBinding;public class PalindromeNumber { public static void main(String[] args) { // TODO Auto-generated method stub Solution_PN solu = new Solution_PN(); System.out.println(solu.isPalindrome(232)); }}class Solution_PN { public boolean isPalindrome(int x) { if(x<0)return false;//如果是负数直接返回false int i=0,n=x;//i代表x为几位数 while(n/10!=0) { i++; n/=10; } //System.out.println("i="+i); while(i>0) { int m =(int)Math.pow(10, i); /*System.out.println("m="+m); System.out.println("x="+x); System.out.println("x/m="+(x/m)); System.out.println("x%10="+x%10);*/ n=x/m; if(n==x%10) { int j=(int)Math.pow(10, i); x=x-(x/j)*j; x=x/10; i=i-2;//去掉两个数 } else return false; } return true; }}
这里再贴上一个代码易懂的:
class Solution {public: bool isPalindrome(int x) { //negative number if(x < 0) return false; int len = 1; while(x / len >= 10) len *= 10; while(x > 0) { //get the head and tail number int left = x / len; int right = x % 10; if(left != right) return false; else { //remove the head and tail number x = (x % len) / 10; len /= 100; } } return true; }};
总结:问题虽然不难,但在取变量名的时候应该多用一些与问题域相符合的字母、单词或单词组合,在平时也要有符合编程规范的意识!
0 0
- LeetCode之路——Palindrome Number
- LeetCode之路—— Palindrome Number
- LeetCode—Palindrome Number
- leetcode—Palindrome Number
- LeetCode 之 Palindrome Number — C++ 实现
- LeetCode 之 Palindrome Number
- LeetCode之Palindrome Number
- leetcode之Palindrome Number
- Leetcode之Palindrome Number
- leetcode之Palindrome Number
- 【Leetcode】之Palindrome Number
- leetcode之Palindrome Number
- leetcode之Palindrome Number
- leetcode之Palindrome Number
- Leetcode 之 Palindrome Number
- LeetCode——Palindrome Number
- LeetCode——Palindrome Number
- LeetCode——Palindrome Number
- 之字形遍历数组
- 67. Add Binary
- hive 虚拟机下执行 HQL 被killed退出
- linux下如何卸载opencv
- 再论数据科学竞赛中的Data Leakage
- LeetCode之路——Palindrome Number
- ViewPager异常总结
- LeetCode-190. Reverse Bits
- Android单元测试环境配置指南
- RHCE 6.7虚拟机克隆后网卡无法启动
- hdu 1907 John(组合游戏 NIM变形)@
- 堆栈简介
- Activity的四种启动模式
- Linux远程传输scp命令