【LeetCode】9.Palindrome Number(Easy)解题报告
来源:互联网 发布:js动态添加div属性值 编辑:程序博客网 时间:2024/05/24 04:20
【LeetCode】9.Palindrome Number(Easy)解题报告
题目地址:https://leetcode.com/problems/palindrome-number/description/
题目描述:
Determine whether an integer is a palindrome. Do this without extra space.
题意:判断一个数字是否是回文数字。但要注意:1,负数都不是回文数;2,不能通过将数字转为字符串来判断回文,因为使用了额外的空间(即只能使用空间复杂度 O(1) 的方法)(解法一,很意外可以A);3,翻转正数注意整数溢出问题(解法二);4,这个问题有一个比较通用的解法:次提取头尾两个数,判断它们是否相等,判断后去掉头尾两个数(解法三)。
Solutions:
Solution1(虽A但不可取)class Solution { public boolean isPalindrome(int x) { if(x<0){ return false; } String temp = Integer.toString(x); int j=temp.length(); //循环条件中i<(j-1-i)换成i<(j-1)/2就a不了。 for(int i=0 ;i<j&&i<(j-1-i);i++){ if(temp.charAt(i)!=temp.charAt(j-1-i)){ return false; } } return true; }}
Solution2(A,但要对溢出进行处理)class Solution { public boolean isPalindrome(int x) { if(x < 0 || (x % 10 == 0 && x != 0)) { return false; } int revertedNumber = 0; while(x > revertedNumber) { revertedNumber = revertedNumber * 10 + x % 10; if(revertedNumber>Integer.MAX_VALUE/10||revertedNumber==Integer.MAX_VALUE/10&&x>Integer.MAX_VALUE%10) return false; x /= 10; } // When the length is an odd number, we can get rid of the middle digit by revertedNumber/10 // For example when the input is 12321, at the end of the while loop we get x = 12, revertedNumber = 123, // since the middle digit doesn't matter in palidrome(it will always equal to itself), we can simply get rid of it. return x == revertedNumber || x == revertedNumber/10; //even,odd }}
Solution3(本题惯例解法)class Solution { public boolean isPalindrome(int x) { if(x<0) return false; int temp = 1; while(x/temp>=10){ temp*=10; } while(x > 0){ int left = x/temp; int right = x%10; //比较首尾 if(left!=right){ return false; //x = (x - left*temp)/10; //if(x<10) return true; //remove the head and tail number }else{ x = (x % temp) / 10; temp /= 100; } } return true; }}
Date:2017年12月20日
阅读全文
0 0
- 【LeetCode】9.Palindrome Number(Easy)解题报告
- [leetcode] 9. Palindrome Number 解题报告
- [Leetcode] 9. Palindrome Number 解题报告
- # leetcode解题报告9. Palindrome Number
- [leetcode]9. Palindrome Number@Java解题报告
- [LeetCode]Palindrome Number,解题报告
- LeetCode解题报告--Palindrome Number
- [LeetCode] Palindrome Number 解题报告
- [LeetCode] Palindrome Number 解题报告
- 【LeetCode】Palindrome Number 解题报告
- Leetcode解题笔记 9.Palindrome Number [Easy]
- LeetCode:9.Palindrome Number[Easy]
- [LeetCode 解题报告]009.Palindrome Number
- LeetCode Problem9 Palindrome Number解题报告
- 【Leetcode】9.Palindrome Number 解题
- 【LeetCode】234.Palindrome Linked List(Easy)解题报告
- Leetcode 9. Palindrome Number (Easy) (cpp)
- [Leetcode 9, Easy] Palindrome Number
- 字典树 / Trie树
- 数据结构课程设计(链表)
- 分治算法:求众数及其重数
- JDBCUtil.java数据库连接池工具类
- neo4j 基本概念和Cypher语句总结
- 【LeetCode】9.Palindrome Number(Easy)解题报告
- Linux下微信安装教程
- Python读写与追加excel文件
- mac 电脑的android studio 启动的时候报错
- Collapsed Gibbs Sampling
- Tensorflow加载多个模型
- Springboot入门之数据访问层
- Zookeeper学习梳理
- python爬虫案例系列教程——python爬取百度新闻RSS数据