leetcode之Palindrome Number
来源:互联网 发布:n86软件 编辑:程序博客网 时间:2024/06/05 05:59
Palindrome Number
Total Accepted: 52023 Total Submissions: 176072My SubmissionsDetermine whether an integer is a palindrome. Do this without extra space.
click to show spoilers.
Could negative integers be palindromes? (ie, -1)
If you are thinking of converting the integer to string, note the restriction of using extra space.
You could also try reversing an integer. However, if you have solved the problem "Reverse Integer", you know that the reversed integer might overflow. How would you handle such case?
There is a more generic way of solving this problem.
代码:
// test9PalindromeNumber.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
bool isPalindrome(int x);
int thedivision(int x, int count);
#define INT_MIN (-2147483647 - 1) /* minimum (signed) int value 为了测试-2147483648*/
int _tmain(int argc, _TCHAR* argv[])
{
bool res = isPalindrome(1000000001);
return 0;
}
bool isPalindrome(int x)
{
if (x < (-2147483647)) //边界值处理太麻烦,所以直接返回结果算了
return false;
if (x>=0 && x<10) //个位数,且是非负数,这直接就看出结果了。
return true;
if (x>-10 && x < 0) //个位数,且是负数,这直接就看出结果了。
return false;
int count = 0; //统计X有多少位
int i, j;
int y = x;
int compare = 0; //统计已经比较了多少位
int start = 10;
int signal = -1;//负数为-1,正数就是1了。
if (x > 0)
signal = 1;
int temp1, temp2;
while (y != 0) //统计X有多少位
{
count = count + 1;
y = y / 10;
}
for (j = count, i = 1;compare+1<=count ; j=j-2, i = i * 10)
{
compare += 2;//比较了第一个位和最后一位,所以比较的增加两位。
//此处不敢去掉高位的数字是因为担心像1001的数字,如果减去高位1,则剩下001,这是不合理的。
temp1 = thedivision(x,j);
if (i != 1)
{
if (signal*temp1 < i && signal*temp1 >= 0)
temp1 = 0;
else
temp1 = temp1%10;
}
temp2 = x%10;
if ((signal*temp1) != temp2)
return false;
x = x / 10;
}
return true;
}
int thedivision(int x, int count)
{
for (int i = 1; i < count; i++)
x = x / 10;
return x;
}
- 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:字符串之Valid Palindrome && Palindrome Number
- LeetCode之9---Palindrome Number
- LeetCode算法题之Palindrome Number
- LeetCode 之 Palindrome Number — C++ 实现
- leetcode之路009 Palindrome Number
- leetCode 之Palindrome Number in Java
- LeetCode进阶之路(Palindrome Number)
- LeetCode之路——Palindrome Number
- elasticsearch安装
- 有关正则表达式的一些用法总结
- POJ 3283 Card Hands Trie树
- org.springframework.web.context.ConfigurableWebApplicationContext.setId(Ljava/lang/String;)V
- 一些递归程序
- leetcode之Palindrome Number
- 最小生成树
- Ant入门教程之部署Java项目
- java 基础
- 比较全的fourcc含义
- 线性代数导论5——转置-置换-向量空间R
- linux命令大全
- 关于VS中区分debug与release,32位与64位编译的宏定义
- MVC 是 OOP吗?