zoukankan      html  css  js  c++  java
  • leetcode——回文数

    题目描述

    题目描述:
    判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

    示例 1:

    输入: 121
    输出: true
    示例 2:

    输入: -121
    输出: false
    解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
    示例 3:

    输入: 10
    输出: false
    解释: 从右向左读, 为 01 。因此它不是一个回文数。
    进阶:

    你能不将整数转为字符串来解决这个问题吗?

    go

    // leetcode中只需要写函数体就行了,main函数不用写
    package main
    
    import "fmt"
    
    func isPalindrome(x int) bool {
    	if x < 0 || x%10 == 0 {
    		return x == 0
    	}
    	rev := 0
    	for x > rev {
    		rev = rev*10 + x%10
    		x = x / 10
    	}
    	return x == rev || x == rev/10
    }
    
    func main() {
    	var x int = 101
    	fmt.Printf("%t
    ", isPalindrome(x))
    }
    

    python

    # 普通解法
    class Solution(object):
        def isPalindrome(self, x):
            """
            :type x: int
            :rtype: bool
            """
            if str(x) == str(x)[::-1]:
                return True
            else:
                return False
    s = Solution()
    print(s.isPalindrome(10)) 
    
    # 不将整数转为字符串的进阶解法
    class Solution(object):
        def isPalindrome(self, x):
            """
            :type x: int
            :rtype: bool
            """
            #x为负数或者x的个位数为0,则直接返回false
            if x < 0 or (x!=0 and x%10==0):
                return False
            rev = 0
            while x > rev:
                rev = rev*10 + x%10
                x = x//10
            return x == rev or x == rev//10
    
    s = Solution()
    print(s.isPalindrome(101))
    
  • 相关阅读:
    匈牙利游戏
    钓鱼
    路由选择
    借教室
    有趣的数
    广告印刷
    海战
    暑假周进度报告(一)
    在Oracle创建一个自己用的用户及角色
    下载,安装oracle数据库以及navicat连接数据库
  • 原文地址:https://www.cnblogs.com/even160941/p/15156420.html
Copyright © 2011-2022 走看看