题目描述
给定一个数字,获取大于此数字的下一个数字X, 要求 X 为对称数字。

样例输入
451 3840 3363 999
样例输出
454 3883 3443 1001
注:对于每个测试实例,要求输出大于n的下一个对称数字

思路:这道题其实算法是很简单的,直接判断给定的数字是否为对称数,如果不是,那就累加循环继续验证,直到符合条件输出即可。
需要注意的点:
1、输出一定要大于n,因此如果所给定的数字本就是对称数,我们需要加判断,不然就直接返回n了。
2、题目考察的一个要点是对称数的判断,输入的是数字,如何逐位对比呢,当然是转化为字符串啦。
代码如下:

def getnum(n):orig_num=nwhile True:s = str(n)l = len(s)j = 0for i in range(l // 2):if s[i] == s[l - i - 1]:j += 1continueelse:breakif n!=orig_num and j == l // 2 :return nelse:n += 1
if __name__ =='__main__':n = input()print(getnum(int(n)))

这里多说一些废话吧,算是另一种思路。一开始觉得上面的解法太暴力,所以想写一种更加巧妙快速的方式。既然是对称数,那我们可以按照对称数的形式制造对称数啊。如果给定数字不是对称数,可以将“中线”(数字的中轴线)左边的数字翻转到右边,这不就是对称数了吗。但是,此时又会发现一个问题输出要大于n,想3363这种数字按照以上的想法就会报错,因此我有加入的对比,如果“中线”左边的数字小于右边的数字,那么将左边的数字加1,再进行翻转,如果相等,跳到下一位继续比较。但是之后又会有很多问题和情况出现,我一直尝试解决所有状况,却发现太过复杂。

其实我想说的是往往我们为了追求一些独特的解法而走入弯路,最后因为各种各样无法预料到的状况变得急躁,直到最后放弃了这道题目。这是很不值的事情,本人就有点固执,常常过后悔恨不已。有时我们要对整个题目有一个直观的判断,题目是为了考察什么,他的量级是否会使得暴力解法一定不能通过。因为暴力解法其实是最容易想到和实现的,如果能通过,即节省时间,又不费脑子,何乐为不为呢。当然我不是提倡用暴力解法,因为大多数时候我们真的太过暴力,系统会很生气的!

对称数(自己的算法)相关推荐

  1. 探讨“对称数”的判断算法

    c语言实现算法 所谓对称数就是指5,88,404,3223等从左往右或从右往左读都相同的数,而89,123,2323这样的数就不是对称数了.现在要求编程判断以字符串的形式给出的对称数,但不能用字符判断 ...

  2. 对称数java算法_对称数的简单实现

    在百度面试题中看到这样一个题,可能比较老套了,这里为了学习,自己写了改写了个简单算法. 我们把一个数字倒着读和原数字相同的数字称之为对称数, (例如1,121,88,8998),不考虑性能,请找出1- ...

  3. [数据结构与算法]输出1~10000中的对称数

    var result = []; for(let i=1;i<10;i++){ result.push(i*11); // 两位数的对称数for(let j=0;j<10;j++){res ...

  4. C++判断一个数是否为回文数palindrome的算法(附完整源码)

    C++判断一个数是否为回文数palindrome的算法 C++判断一个数是否为回文数palindrome的算法完整源码(定义,实现,main函数测试) C++判断一个数是否为回文数palindrome ...

  5. C语言强数Strong number算法(附完整源码)

    强数Strong number算法 何为Strong number强数 C语言强数Strong number算法完整源码(定义,实现,main函数测试) 何为Strong number强数 强数是一个 ...

  6. C语言实现阿姆斯特朗数armstrong number算法(附完整源码)

    阿姆斯特朗数armstrong number 实现阿姆斯特朗数armstrong number算法的完整源码(定义,实现,main函数测试) 实现阿姆斯特朗数armstrong number算法的完整 ...

  7. java所有的质因数_Java实现分解任意输入数的质因数算法示例

    本文实例讲述了java实现分解任意输入数的质因数算法.分享给大家供大家参考,具体如下: 分解任意输入数的质因数: 质因数概念:任何一个合数都可以写成几个质数相乘的形式.其中每个质数都是这个合数的因数, ...

  8. java质因数的分解_Java实现分解任意输入数的质因数算法示例

    本文实例讲述了Java实现分解任意输入数的质因数算法.分享给大家供大家参考,具体如下: 分解任意输入数的质因数: 质因数概念:任何一个合数都可以写成几个质数相乘的形式.其中每个质数都是这个合数的因数, ...

  9. (C语言)对称数判断

    Description 输入一个整型数,判断是否是对称数,如果是,输出yes,否则输出no,不用考虑这个整型数过大,int类型存不下,不用考虑负值: 例如 12321是对称数,输出yes,124421 ...

最新文章

  1. NumPy Ndarray 对象
  2. 直播实录QA | 王赟Maigo分享“知识连成一片”是怎样一种体验
  3. 洛谷P1220 关路灯(区间dp)
  4. 灰度图片维度与彩色图片维度-python-scikit-image包
  5. when is SAP UI5 where is title 'Scaffold in Shell integration test' defined
  6. MVDR波束形成MATLAB实现
  7. Android之实现Room升级需要给一个表增加一个字段
  8. CentOS 7.0变动
  9. 【LeetCode】面试题 03. 数组中重复的数字
  10. 软件测试必备工具安装包
  11. OSI七层协议模型和各自的功能
  12. 几款Linux系统漏洞扫描、评估工具简介
  13. 微信公众号H5页面:禁止分享操作
  14. Cocoscreator 3.01 ios平台Facebook登陆
  15. BUUCTF 荷兰宽带数据泄露
  16. 《史玉柱自述:我的营销心得》
  17. 泰勒Taylor公式
  18. lisp 梯形展开图_斜截圆柱件钣金展开图的AutoCAD二次开发
  19. 计算机不联网怎么计时,电脑为什么在断网后仍能准确显示时间?
  20. 同一个局域网怎么计算机共享打印机,如何在同一个局域网内将多台计算机连接到 USB 共享打印机,实现共同打印...

热门文章

  1. HCNA---Day1
  2. 专享策略02 | 商品股指通用套利策略(一)
  3. 8月9日华为发布了其自研的鸿蒙操作系统,华为正式发布自研操作系统鸿蒙
  4. Halo的Sakura主题
  5. 矩阵连乘问题(动态规划)
  6. Python base64 + AES EBC模式加密
  7. Word文件怎么打印
  8. 【CV实战】年轻人的第一个深度学习CV项目应该是什么样的?(支持13大深度学习开源框架)...
  9. google nexus 10 用fastboot 刷机教程 (官方原版rom)
  10. python裁剪图片边缘模糊_Python OpenCV 图片高斯模糊