leetcode9 Palindrome Number(按进阶要求)
题目描述
Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward.
Example 1:
Input: 121
Output: true
Example 2:
Input: -121
Output: false
Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome.
Example 3:
Input: 10
Output: false
Explanation: Reads 01 from right to left. Therefore it is not a palindrome.
Follow up:
Coud you solve it without converting the integer to a string?
#include<math.h>
class Solution {
public:
    bool isPalindrome(int x) {
        if(x<0)
            return false;
        if(x>=0&&x<=9)
            return true;
        int weishu=0;
        int temp=x;
        while(temp) //先看一下数字总共有几位
        {
            temp=temp/10;
            weishu++;
        }
        int jishu=0; //看一下是奇数还是偶数
        jishu=weishu%2;
        int mowei=1;
        int shouwei=weishu+1-mowei;  //shouwei代表着要和末位对比的位置,而不是真正的首位
        if(jishu)
        {
            while(x&&shouwei!=1){
            int a=pow(10,shouwei-1);  //这个动作是为了取shouwei,先把后面的位数去了
            if((x/a%10)!=(x%10))    //(x/a%10)是shouwei,(x%10)是末位
                return false;
            x=x/10;
            shouwei-=2; //对比完一对,shouwei的位置就减2,因为前面的指针要往后移一位,最后一位抛弃,相当于移了2位
            }
        }else{   //偶数个位数也一样,区别就是shouwei剩一个还是0个
            while(x&&shouwei!=0){
           int  a=pow(10,shouwei-1);
            if((x/a%10)!=(x%10))
                return false;
            x=x/10;
            shouwei-=2;
            }
        }
        return true;
    }
};
总结
按要求不转成string来做的。没看题解,我感觉我想的还挺巧妙的,就是提交情况来看,似乎在通过中算比较慢的,但比较省内存。我估计是int转string的方法时间复杂度低。
然后看了题解,发现把数转成回文,然后看是否相等就可以了。瞬间又觉得自己有点蠢。
leetcode9 Palindrome Number(按进阶要求)的更多相关文章
- LeetCode9 Palindrome Number
		
题意: Determine whether an integer is a palindrome. Do this without extra space. (Easy) 分析: 自己考虑的方法是利 ...
 - 65. Reverse Integer  && Palindrome Number
		
Reverse Integer Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, re ...
 - 有趣的数-回文数(Palindrome number)
		
文章转自http://blog.163.com/hljmdjlln@126/blog/static/5473620620120412525181/ 做LC上的题"Palindrome num ...
 - 9. Palindrome Number
		
/* Determine whether an integer is a palindrome. Do this without extra space. click to show spoilers ...
 - No.009 Palindrome Number
		
9. Palindrome Number Total Accepted: 136330 Total Submissions: 418995 Difficulty: Easy Determine whe ...
 - 【LeetCode】9 & 234 & 206 - Palindrome Number & Palindrome Linked List & Reverse Linked List
		
9 - Palindrome Number Determine whether an integer is a palindrome. Do this without extra space. Som ...
 - leetcode 第九题 Palindrome Number(java)
		
Palindrome Number time=434ms 负数不是回文数 public class Solution { public boolean isPalindrome(int x) { in ...
 - HDU 5062 Beautiful Palindrome Number(数学)
		
主题链接:http://acm.hdu.edu.cn/showproblem.php? pid=5062 Problem Description A positive integer x can re ...
 - Reverse Integer - Palindrome Number - 简单模拟
		
第一个题目是将整数进行反转,这个题实现反转并不难,主要关键点在于如何进行溢出判断.溢出判断再上一篇字符串转整数中已有介绍,本题采用其中的第三种方法,将数字转为字符串,使用字符串比较大小的方法进行比较. ...
 
随机推荐
- python课堂整理20----生产者消费者模型
			
一.实现功能:店铺生产包子,消费者来吃 import time def producter(): ret = [] for i in range(10): time.sleep(0.1) ret.ap ...
 - 你真的熟练使用webpack吗?
			
https://www.webpackjs.com/ 官网地址 当自己在简历中写着熟练使用webpack的时候,殊不知自己只是在vue脚手架,react脚手架的路上走着比较轻松而已. 当面试官问你这几 ...
 - PIVOT内置函数实现行转列
			
PIVOT用于将列值旋转为列名(即行转列),PIVOT的一般语法是:PIVOT(聚合函数(列) FOR 列 in (…) )AS P 完整语法: table_source PIVOT( 聚合函数(va ...
 - RobotFramework_2.新建项目、新建用例、运行用例和查看测试报告
			
RobotFramework的使用 新建一个项目 Robotframework-ride的界面 分了四个区域:菜单栏.工具栏.案例及资源区.工作区,如下图: 创建项目 首先,点击File-New Pr ...
 - Python3发送邮件功能
			
Python3实现邮件发送功能 import smtplib from email.mime.text import MIMEText # 导入模块 class SendEmail: def send ...
 - 基于zookeeper集群的云平台-配置中心的功能设计
			
最近准备找工作面试,就研究了下基于zookeeper集群的配置中心. 下面是自己设想的关于开源的基于zookeeper集群的云平台-配置中心的功能设计.大家觉得哪里有问题,请提出宝贵的意见和建议,谢谢 ...
 - 有容云-PPT | 当微服务遇见容器
			
编者注: 本文为10月29日有容云高级技术顾问龙淼在Docker Live时代线下系列-广州站中演讲的PPT,本次线下沙龙为有容云倾力打造Docker Live时代系列主题线下沙龙,每月一期畅聊容器技 ...
 - Linux基础文件权限
			
一.基本权限 文件权限设置: 可以赋于某个用户或组 能够以何种方式 访问某个文件 权限对象:属主: u属组: g其他人: o 基本权限类型:读:r 4写:w 2执行: x 1 rwx rw- r-- ...
 - HiveQL DDL  常用QL示例资料
			
hive-version2.1.1 DDL操作 Create/Drop/Alter/Use Database 创建数据库 //官方指导 CREATE (DATABASE|SCHEMA) [IF NOT ...
 - ArrayList 的使用方法【摘要】
			
ArrayList 的使用方法 1.什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: (1)动态的增加和减少元素 ...