LeetCode之路—— Palindrome Number
来源:互联网 发布:php生成短网址 编辑:程序博客网 时间:2024/06/07 13:58
题目要求:判断一个整形数字是否是回文,空间复杂度O(1)
思路:题目要求空间复杂度是O(1),那么就不能用将整形转成字符串然后取第一个字符和最后一个字符比较,那么只能取整数的最高位和最低位比较,若相等则循环,不等则返回false。
特殊情况:若为负数则返回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
- SQl高级语句-NULL 用作未知的或不适用的值的占位符(IS NULL、IS NOT NULL)
- HDU1535~Invitation Cards(spfa+邻接表反转)
- 设置Qt依赖库路径
- java-toString的调用
- 【Git & GitHub】解决办法:Could not read from remote repository.Please make sure you have the...
- LeetCode之路—— Palindrome Number
- Android 客户端 okhttp3 与服务器之间的双向验证
- QProcess调用外部程序
- redis k-v最操作
- 模糊聚类分析之基础
- 断点上传方案
- http 长连接 短连接 持久连接
- PopupWindow(2)
- C语言--函数(方法)