本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/41598031

Palindrome Number

Determine whether an integer is a palindrome. Do this without extra space.

思路:

(1)题意中限制不可申请额外的空间,所以不能将整数转为字符串进行处理。如果没有限制,则可将其转为字符串,前后分别进

行遍历即可进行判断。

(2)需要注意的是,需要对负数进行判断,负数显然不是回文串。

(3)首先,需要设置标志位来记录该整数最高位所对最小整数,例如1221,包含所有位数最小整数位1000,则标志位为1000。

(4)其次,判断该整数"/1000"(即对标志位取整)的结果是否和其“%10”(取余数)得到的结果相同,即判断最高位和最低位所

对的数字是否相同,不相同则返回false;

(5)最后,如果相同,首先去除该整数位“最高位”,即该整数减去其 “最高位 * 标志位”(得到结果为221),然后去除其“最低位”,

将所得结果再“/10”(取整,得到结果为22),这样就去掉了最高位和最低位。由于去掉了“两位”,所以标志位对应也需要去

掉“两位”,即标志位需要再“/100”(10的2次方)。循环上述操作,直到该整数小于0,最后返回对应结果。

算法代码实现如下所示:(希望对你有所帮助,谢谢)

public static boolean isPalindrome(int x) {
	if (x < 0)
		return false;
	int flag = 1;
	//确定为10的多少幂次方
	while (x / flag > 9) {
		flag = flag * 10;
	}

	while (x > 0) {
		//判断最高位和最低位是否相同
		if (x/flag != x % 10) {
			return false;
		} else {
			//得到最高位
			int left = x / flag;
			//去掉最高位
			x = x - left * flag;
			//去掉最低位
			x = x / 10;
			//位数少了两位,标志位减少10的2次方100
			flag = flag / 100;
		}
	}
	return true;
}

Leetcode_9_Palindrome Number的更多相关文章

  1. JavaScript Math和Number对象

    目录 1. Math 对象:数学对象,提供对数据的数学计算.如:获取绝对值.向上取整等.无构造函数,无法被初始化,只提供静态属性和方法. 2. Number 对象 :Js中提供数字的对象.包含整数.浮 ...

  2. Harmonic Number(调和级数+欧拉常数)

    题意:求f(n)=1/1+1/2+1/3+1/4-1/n   (1 ≤ n ≤ 108).,精确到10-8    (原题在文末) 知识点:      调和级数(即f(n))至今没有一个完全正确的公式, ...

  3. Java 特定规则排序-LeetCode 179 Largest Number

    Given a list of non negative integers, arrange them such that they form the largest number. For exam ...

  4. Eclipse "Unable to install breakpoint due to missing line number attributes..."

    Eclipse 无法找到 该 断点,原因是编译时,字节码改变了,导致eclipse无法读取对应的行了 1.ANT编译的class Eclipse不认,因为eclipse也会编译class.怎么让它们统 ...

  5. 移除HTML5 input在type="number"时的上下小箭头

    /*移除HTML5 input在type="number"时的上下小箭头*/ input::-webkit-outer-spin-button, input::-webkit-in ...

  6. iOS---The maximum number of apps for free development profiles has been reached.

    真机调试免费App ID出现的问题The maximum number of apps for free development profiles has been reached.免费应用程序调试最 ...

  7. 有理数的稠密性(The rational points are dense on the number axis.)

    每一个实数都能用有理数去逼近到任意精确的程度,这就是有理数的稠密性.The rational points are dense on the number axis.

  8. [LeetCode] Minimum Number of Arrows to Burst Balloons 最少数量的箭引爆气球

    There are a number of spherical balloons spread in two-dimensional space. For each balloon, provided ...

  9. [LeetCode] Number of Boomerangs 回旋镖的数量

    Given n points in the plane that are all pairwise distinct, a "boomerang" is a tuple of po ...

随机推荐

  1. 使用 Nexus Repository Manager 搭建私有docker仓库

    使用容器安装Nexus3 1.下载nexus3的镜像: docker pull sonatype/nexus3 2.使用镜像启动一个容器: docker run -d --name nexus  -- ...

  2. 牛客网编程练习之PAT乙级(Basic Level):1034 写出这个数

    AC代码: import java.util.*; /** * @author CC11001100 */ public class Main { public static void main(St ...

  3. 使用kprobes查看内核内部信息

    前言:使用printk打印变量等方法,是调试内核的有效方法之一,但是这种方法必须重新构建并用新内核启动,调试效率比较低.以内核模块的方式使用kprobes.jprobes,就可以在任意地址插入侦测器, ...

  4. Mac入门

    Mac入门 桌面 windows桌面有图标罗列 Mac桌面有Dock 菜单栏 感觉上和Windows系统的底部菜单栏有点像,但是却略有不同,Mac的菜单栏默认在顶部 左侧的一些功能是固定不变的,跟随当 ...

  5. 一个貌似比较吊的递归转换为loop--总算成功了.

    class Stack(object): """ A class to hold arguements and state data. """ ...

  6. 【伯乐在线】Java线程面试题 Top 50

    本文由 ImportNew - 李 广 翻译自 javarevisited.欢迎加入翻译小组.转载请见文末要求. 不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题.Java语言一个重要的特 ...

  7. RxJava操作符(04-过滤操作)

    转载请标明出处: http://blog.csdn.net/xmxkf/article/details/51656494 本文出自:[openXu的博客] 目录: Debounce Distinct ...

  8. EJB_开发EJB容器模型的WEB服务

    开发EJB容器模型的WEB服务 WEB服务 Web服务也是一种分布式技术,它与EJB最大的不同是,Web服务属于行业规范,可以跨平台及语言.而EJB属于Java平台的规范,尽管理论上可以跨平台,但实现 ...

  9. Android加速度传感器

    Android加速度传感器 效果图 手机平放桌面的两张截屏,数据一直在刷新 源码 下载地址(Android Studio工程):http://download.csdn.net/detail/q487 ...

  10. EBS应收(AR)模块常用表

     select * from ar_batches_all 事务处理批 select * from ra_customer_trx_all INVOICE头 select * from ra_cu ...