题目:Determine whether an integer is a palindrome. Do this without extra space.
翻译:判断一个数字是否是回文数,不要额外空间。
解题思路:因为数字既然传过去了,就不会有越界的问题。每次只需要取最前面和最后面的那一位数字进行比较,相同则继续,不同则返回、
首先要获取数字的位数,假设数字是12344321,一共有8位。
其次是要每次取前后各一位来进行比较,用数字除以1后面7个0得到第一位,用数字对10取余数得到最后一位。
此时要比较第二位和倒数第二位,只需将数字对1后面7个0取余后,在除以10.这样数字就变为234432,然后再把位数除以100。循环可得到结果。
public class Solution {
public static boolean isPalindrome(int x) {
if(x <0) return false;
int length = 1;//数字的位数
while(x/10 >= length)
{
length *=10;
}
while(x>0)
{
int high = x /length;
int low = x % 10;
if(high != low)
return false;
x = (x%length)/10;
length = length /100;
}
return true;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成的方法存根
int x = 1234554321;
boolean t = isPalindrome(x);
System.out.println(t);
}
}
做完后,查看别人的做法,发现有个不错的。采用的是递归,
粘在这里,方便以后复习用、
代码2:http://blog.csdn.net/ithomer/article/details/8798274
bool check(int x, int &y) {
if (x == 0) return true;
if (check(x/10, y) && (x%10 == y%10)) {
y /= 10;
return true;
} else {
return false;
}
}
bool isPalindrome(int x) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
if(x < 0) return false;
return check(x, x);
}
分享到:
相关推荐
Leetcode\PalindromeNumber\PalindromeNumber.cs 问题: 从排序数组中删除重复项 代码: Leetcode\RemoveDuplicates\RemoveDuplicates.cs 问题: 买卖股票的最佳时机 II 代码: Leetcode\MaxProfit\MaxProfit.cs ...
Palindrome Number 回文数 11 Container With Most Water 盛最多水的容器 13 Roman to Integer 罗马数字转整数 14 Longest Common Prefix 最长公共前缀 20 Valid Parentheses 有效的括号 26 Remove Duplicates from ...
lru cache ...回文数字 10. Regular Expression Matching 动态规划,列出转换方程即可,注意初值 记T[i][j] = 是否S[0:i]和P[0:j]匹配 再分类讨论,其中pattern *分为0, 1, more三种类型 0: i不变, j+1
Palindrome Number 回文数 10. Regular Expression Matching 正则表达式匹配 11. Container With Most Water 盛最多水的容器 12. Integer to Roman 整数转罗马数字 13. Roman to Integer 罗马数字转
9.Palindrome Number 10.String To Integer 11.Container With Most Water 12.Integer To Roman 13.Roman To Integer 289 347 380 442 457 Circular Array Loop 535 Encode and Decode TinyURL 560 565 566 Maximum ...
9.Palindrome Number 判断一个整数是否是回文。 当一个整数向后读与向前读相同时,它就是回文。 示例 1: 输入:121 输出:true 示例 2: 输入:-121 输出:false 解释:从左到右,读数为 -121。 从右到左,它变成 ...
Palindrome Number.cpp 12 整数转罗马数字 Integer to Roman.cpp 13 罗马数字转整数 Roman to Integer.cpp 15 三数之和 3Sum.cpp 最接近的三数之和 3Sum Closest .cpp 20 有效的括号 Valid Parentheses.cpp 22 括号...
判断链表是否为回文链表 leetcode Leetcode-解决方案 Leetcode问题的思考和解决方案 #Reverse Integer & Palindrome Number 先将整数转为字符串:s=str(i) 然后使用 Python inbulit 方法对字符串进行反转:[::-1] ...
leetcode打不开利特 我对 Leet 码问题的所有解决方案都可以在这里找到 9.回文数(已解决) 判断一个整数是否是回文。 当一个整数向后读与向前读相同时,它就是回文。 示例 1: Input: 121 Output: true 示例 2: ...
leetcode给单链表加一js实现 LeetCode By JavaScript ...Number:回文数 11 Container With Most Water:双指针搜索的典型例子 12 Integer to Roman: 将阿拉伯数字转换为罗马数字 38 Count and Say:
Number(回文数) 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 Longest Common Prefix(最长公共前缀) 编写一个函数来查找字符串数组中的最长公共前缀,如果不存在公共...
回文数 判断一个整数是否是回文数。...来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/palindrome-number 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
题源:https://leetcode-cn.com/problems/palindrome-number/ 问题描述:回文数 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1: 输入: 121 输出: true 示例 2:...
leetcode1两数之和 Leetcode Leetcode1_100 1. 两数之和 2. 两数相加 3. 无重复字符的最长子串 4. 找出两个排序数组的中位数 MedianofTwoSortedArray ...PalindromeNumber 10. 正则匹配 RegularExpressionMatch
leetcode双人赛LeetCode 编号 题目 难度 题型 备注 Two Sum 简单 Add Two Numbers 中等 链结串列 重要 Longest Substring Without Repeating Characters 中等 字串 重要 Median of Two Sorted Arrays 困难 数学 ...
字符串可能的余数是回文 判断一个int是否是回文的java实现 判断一个整数是否是回文。 当一个整数向后读与向前读相同时,它就是回文。 示例 1: Input: 121 Output: true 示例 2: Input: -121 Output: false 说明:...
leetcode数组下标大于间距 5. Longest Palindromic Substring 这里使用menecher方法,就是动态规划,首先在原先的字符串之间插入'#, 这样可以统一处理奇数串和偶数串, 使用两个变量纪录状态, far_pos表示最长回文...
js代码-判断一个整数是否是回文数。 回文数是指正序(从左向右)和倒序(从...链接:https://leetcode-cn.com/problems/palindrome-number 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。