对称数(自己的算法)
题目描述
给定一个数字,获取大于此数字的下一个数字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,再进行翻转,如果相等,跳到下一位继续比较。但是之后又会有很多问题和情况出现,我一直尝试解决所有状况,却发现太过复杂。
其实我想说的是往往我们为了追求一些独特的解法而走入弯路,最后因为各种各样无法预料到的状况变得急躁,直到最后放弃了这道题目。这是很不值的事情,本人就有点固执,常常过后悔恨不已。有时我们要对整个题目有一个直观的判断,题目是为了考察什么,他的量级是否会使得暴力解法一定不能通过。因为暴力解法其实是最容易想到和实现的,如果能通过,即节省时间,又不费脑子,何乐为不为呢。当然我不是提倡用暴力解法,因为大多数时候我们真的太过暴力,系统会很生气的!
对称数(自己的算法)相关推荐
- 探讨“对称数”的判断算法
c语言实现算法 所谓对称数就是指5,88,404,3223等从左往右或从右往左读都相同的数,而89,123,2323这样的数就不是对称数了.现在要求编程判断以字符串的形式给出的对称数,但不能用字符判断 ...
- 对称数java算法_对称数的简单实现
在百度面试题中看到这样一个题,可能比较老套了,这里为了学习,自己写了改写了个简单算法. 我们把一个数字倒着读和原数字相同的数字称之为对称数, (例如1,121,88,8998),不考虑性能,请找出1- ...
- [数据结构与算法]输出1~10000中的对称数
var result = []; for(let i=1;i<10;i++){ result.push(i*11); // 两位数的对称数for(let j=0;j<10;j++){res ...
- C++判断一个数是否为回文数palindrome的算法(附完整源码)
C++判断一个数是否为回文数palindrome的算法 C++判断一个数是否为回文数palindrome的算法完整源码(定义,实现,main函数测试) C++判断一个数是否为回文数palindrome ...
- C语言强数Strong number算法(附完整源码)
强数Strong number算法 何为Strong number强数 C语言强数Strong number算法完整源码(定义,实现,main函数测试) 何为Strong number强数 强数是一个 ...
- C语言实现阿姆斯特朗数armstrong number算法(附完整源码)
阿姆斯特朗数armstrong number 实现阿姆斯特朗数armstrong number算法的完整源码(定义,实现,main函数测试) 实现阿姆斯特朗数armstrong number算法的完整 ...
- java所有的质因数_Java实现分解任意输入数的质因数算法示例
本文实例讲述了java实现分解任意输入数的质因数算法.分享给大家供大家参考,具体如下: 分解任意输入数的质因数: 质因数概念:任何一个合数都可以写成几个质数相乘的形式.其中每个质数都是这个合数的因数, ...
- java质因数的分解_Java实现分解任意输入数的质因数算法示例
本文实例讲述了Java实现分解任意输入数的质因数算法.分享给大家供大家参考,具体如下: 分解任意输入数的质因数: 质因数概念:任何一个合数都可以写成几个质数相乘的形式.其中每个质数都是这个合数的因数, ...
- (C语言)对称数判断
Description 输入一个整型数,判断是否是对称数,如果是,输出yes,否则输出no,不用考虑这个整型数过大,int类型存不下,不用考虑负值: 例如 12321是对称数,输出yes,124421 ...
最新文章
- NumPy Ndarray 对象
- 直播实录QA | 王赟Maigo分享“知识连成一片”是怎样一种体验
- 洛谷P1220 关路灯(区间dp)
- 灰度图片维度与彩色图片维度-python-scikit-image包
- when is SAP UI5 where is title 'Scaffold in Shell integration test' defined
- MVDR波束形成MATLAB实现
- Android之实现Room升级需要给一个表增加一个字段
- CentOS 7.0变动
- 【LeetCode】面试题 03. 数组中重复的数字
- 软件测试必备工具安装包
- OSI七层协议模型和各自的功能
- 几款Linux系统漏洞扫描、评估工具简介
- 微信公众号H5页面:禁止分享操作
- Cocoscreator 3.01 ios平台Facebook登陆
- BUUCTF 荷兰宽带数据泄露
- 《史玉柱自述:我的营销心得》
- 泰勒Taylor公式
- lisp 梯形展开图_斜截圆柱件钣金展开图的AutoCAD二次开发
- 计算机不联网怎么计时,电脑为什么在断网后仍能准确显示时间?
- 同一个局域网怎么计算机共享打印机,如何在同一个局域网内将多台计算机连接到 USB 共享打印机,实现共同打印...
热门文章
- HCNA---Day1
- 专享策略02 | 商品股指通用套利策略(一)
- 8月9日华为发布了其自研的鸿蒙操作系统,华为正式发布自研操作系统鸿蒙
- Halo的Sakura主题
- 矩阵连乘问题(动态规划)
- Python base64 + AES EBC模式加密
- Word文件怎么打印
- 【CV实战】年轻人的第一个深度学习CV项目应该是什么样的?(支持13大深度学习开源框架)...
- google nexus 10 用fastboot 刷机教程 (官方原版rom)
- python裁剪图片边缘模糊_Python OpenCV 图片高斯模糊