Python判断数字回文(转字符串实现,不转字符串实现)

Python实现数字回文的判断,回文返回True,非回文返回False, 只有一位数的也返回True.

其中思路一,将数字转换成字符串,然后跟逆序对比,但需要额外的空间开销来创建字符串。具体实现:

def isPalindrome(x):    """    :type x: int    :rtype: bool    """    str_x = str(x)    if len(str_x) == 0:        print("Input {0} is invalid.".format(x))        return False    return str_x == str_x[::-1]

if __name__ == ‘__main__‘:    input_str = input("Please input one number:")    try:        x = int(input_str)        print(isPalindrome(x))    except ValueError:        print("Input {0} is invalid.".format(input_str))


原文地址:https://www.cnblogs.com/kaiying-Tang/p/11511192.html

时间: 2024-07-30 21:42:25

Python判断数字回文(转字符串实现,不转字符串实现)的相关文章

回文指的是一个字符串从前面读和从后面读都一 样,编写一个算法判断一个字符串是否为回文。

回文指的是一个字符串从前面读和从后面读都一 样,编写一个算法判断一个字符串是否为回文. 要求: 1)采用链栈实现算法: 2)从键盘输入一个字符串,输出判断结果. #include"stdio.h" #include"stdlib.h" typedef char ElemType; typedef struct stnode { ElemType data; struct stnode *next; }StNode, *LinkStack; int huiwen(ch

算法:判断是否回文数

题目:判断传入数字是否为回文数. 回文数是指一个像16461这样“对称”的数,即:将这个数的数字按相反的顺序重新排列后,所得到的数和原来的数一样. 解法: 1 public boolean isPalindromic(int number){ 2 if(number<10){ 3 return true; 4 } 5 ArrayList<Integer> arry = new ArrayList<Integer>(); 6 do{ 7 arry.add(number%10);

算法学习笔记——判断最小回文子串

利用C语言实现的最长回文子串算法 1 # include<stdio.h> 2 # include<string.h> 3 # include<ctype.h> 4 5 # define MAXN 5000 + 10 6 char buf[MAXN], s[MAXN]; //buf输入字符串, s去掉标点空格并转为大写的预处理字符串 7 int p[MAXN]; // p用于记录处理后字符串s中,每个字符在原字符串buf中的序号 8 int main(){ 9 10 i

判断整形回文数

题意: 判断一个整数是否为回文数: 1.负数不是回文数 2.个位数一定是回文数 3.12321.6666.11等类似这样的数是回文数 下面是我写的代码: public boolean isPalindrome(int x) { if(x < 0){ return false; }else if(x<10){ return true; } int a=10,b=10; while(x/a > 9) a *= 10; if(x/a != x%b){ return false; }else{

最长(大)回文串的查找(字符串中找出最长的回文串)PHP实现

首先还是先解释一下什么是回文串:就是从左到右或者从右到左读,都是同样的字符串.比如:上海自来水来自海上,bob等等. 那么什么又是找出最长回文串呢? 例如:字符串abcdefedcfggggggfc,其中efe,defed,cdefedc,gg,ggg,gggg,ggggg,gggggg,fggggggf,cfggggggfc都是回文串,左右完全一样. 这其中,有最短的gg,最长的cfggggggfc,还有其他长度的.忽略长度为1的.毕竟一个字符的都算回文了. 那么,找出最长的,就是找出这个cf

C语言判断是不是回文!

#include <stdio.h>void main(){  int i=0;  int wan,qian,shi,ge;  do{   printf("请输入一个5位数:");   scanf("%d",&i);    wan=i/10000;   qian=(i/1000)%10;   shi=(i%100)/10;   ge=i%10;   if(i>9999&&i<=99999){     if(wan==g

valid-palindrome——判断带符号数字字母的字符串是否为回文

Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases. For example,"A man, a plan, a canal: Panama"is a palindrome."race a car"is not a palindrome. Note: Have you consider that the

判断一个数字是否为回文数

Determine whether an integer is a palindrome. Do this without extra space.(source) 判断一个数字是否为回文数,并且不使用额外的存储空间. "回文"是指正读反读都能读通的句子,那么回文数,就很容易理解,就是指一个数正反读的值是相同的.还有一个要求是不要使用额外的存储空间. Hints: 要将一个数的最高位与最低位比较,取出一个数的最低位容易(x%10),但要得到高位却很难. Solution 1: 首先得知

(c语言)回文字符串的判断,gets和scanf

问题描述: 判断一个字符串是否是回文字符串. 程序分析: 回文字符串: 回文字符串是指一个字符中的最高位与最低位的字符是一样的,次高位和次低位上的字符是一样的,以此类推.同时,值得注意的是单个字符,或者多个重复的字符也是回文字符串. (1)定义一个判断回文数的函数,按照上面给出的回文数的定义,我们进行判断. (2)本程序在主函数传入字符串的过程中发现了用gets函数与用scanf函数的不一样之处.我想让这个程序在一个while循环的控制下可以判断多个字符串再结束.这时候如果用gets不断的读取s