pta构造回文数C语言,【LeetCode】 #9:回文数 C语言
最近打算练习写代码的能力,所以从简单题开始做。
大部分还是用C语言来解决。
@
题目
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例 1:
输入: 121
输出: true
示例 2:
输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。
思路
这与#7很相似,但是需要考虑方法的效率问题。
初步想法
初步的想法就是用一个while循环,在循环里面解决取余和倒序相加的工作。之后再用一个循环进行首尾比较。
具体代码如下:
bool isPalindrome(int x) {
if (x < 0 || x%10 == 0 && x != 0) return 0;
if (x / 10 == 0) return 1;
int a[20] = { 0 }, n = 0;
while (x) {
a[n] = x % 10;
x = x / 10;
n++;
}
for (int i = 0; i < n / 2; i++){
if (a[i] != a[n-1-i]) return 0;
}
return 1;
}
需要注意的是,我们可以预先对数据进行判断,比如负数一定不是回文数,数字末尾为0的非0数也一定不是回文数,只有一位的数字一定是回文数。、
进一步想法
在看了官方题解后,提到了将数字本身反转,然后将反转后的数字与原始数字进行比较,如果它们是相同的,那么这个数字就是回文。
bool isPalindrome(int x) {
if (x < 0 || x%10 == 0 && x != 0) return 0;
if (x / 10 == 0) return 1;
int rev = 0;
while (x > rev) {
rev = x % 10 + rev * 10;
x = x / 10;
}
return x == rev || x == rev / 10;
}
需要注意的是由于预先不知道x是奇数位还是偶数位,所以最后的比较条件里出现了 x==rev/10.
最后想法
题目中也有提到将数字转换为字符串,我一开始想到用itoa,但是leetcode不支持这个函数,所以选用了sprintf来进行转换。
bool isPalindrome(int x) {
if (x < 0 || x % 10 == 0 && x != 0) return 0;
char a[20] = { 0 };
sprintf_s(a,"%d",x);
for (int i = 0; i< (strlen(a) / 2); i++){
if (a[i] != a[strlen(a) - 1 - i]) return 0;
}
return 1;
}
参考链接
总结
在简单问题上,不仅要注意到问题的解决,还要注重方法的效率问题,尝试用多种方法来解决。
leetcode 1.回文数-(easy)
2019.7.11leetcode刷题 难度 easy 题目名称 回文数 题目摘要 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 思路 一些一定不为回文数的 ...
LeetCode 5回文数
判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向 ...
leetcode isPalindrome (回文数判断)
回文很简单,就是正着读和反着读一样,要判断一个数是否为回文数只需要判断正反两个是不是相等即可. 再往深了想一下,只需要判断从中间分开的两个数一个正读,一个反读相等即可. 代码: class Solut ...
Java实现 LeetCode 9 回文数
9. 回文数 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false ...
[LeetCode] 9. 回文数
题目链接:https://leetcode-cn.com/problems/palindrome-number/ 题目描述: 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都 ...
leetcode记录-回文数
判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向 ...
Leetcode 9 回文数Palindrome Number
判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向 ...
leetcode 9 Palindrome Number 回文数
Determine whether an integer is a palindrome. Do this without extra space. click to show spoilers. S ...
[LeetCode] Prime Palindrome 质数回文数
Find the smallest prime palindrome greater than or equal to N. Recall that a number is prime if it's ...
随机推荐
2016 版 Laravel 系列入门教程(五)【最适合中国人的 Laravel 教程】
本教程示例代码见: https://github.com/johnlui/Learn-Laravel-5 在任何地方卡住,最快的办法就是去看示例代码. 本文是本系列教程的完结篇,我们将一起给 Arti ...
Mac下finder中无法关闭的小条
就是这个恶心的小东西,根本无法关闭.其实就是在finder中无意中输入了中文导致的(不是按Alt+F , 就是打开finder然后输入中文) 可以通过继续输入中文然后按esc退出.也可以用下面的设置尽 ...
javascript面向对象实例
非私有属性 function Student(name, gender, age, grade, teacher){ this.name = name; this.gender = gender; t ...
erl0004 - ets 安全遍历
safe_fixtable(Tab, true|false) -> true Types: Tab = tid() | atom() 锁定set,bag和 ...
HDU 5656 CA Loves GCD (数论DP)
CA Loves GCD 题目链接: http://acm.hust.edu.cn/vjudge/contest/123316#problem/B Description CA is a fine c ...
给Sublime Text 2安装CTags插件
以Windows操作系统为例介绍安装过程: 安装ctags应用程序. 到CTags的官方网站下载最新版本,解压后将ctags.exe文件放到系统的搜索路径中. 安装Sublime Text 2的Pac ...
MAC apache服务器搭建
一.启动原本服务器 首先打开“终端(terminal)”,输入 sudo apachectl -v,(可能需要输入机器秘密).如下显示Apache的版本: 可以输入启动命令进行启动: sudo apa ...
滑动窗口的最大值 &#183; sliding-window-maximum
[抄题]: Given an array nums, there is a sliding window of size k which is moving from the very left of ...
android4.2 高用zing拍照后,返回其它页面操作时,主线程关掉或程序退出的问题解决
产生错误的代码: @Override protected void onCreate(Bundle savedInstanceState) { StrictMode.setThreadPolicy(n ...
Linux Socket - UDP链接包
LINUX UDP SOCKET 01 UDP号绑定会报错吗? 会的,提示Address is using,本地的没有区别 UDP不需要发起链接,不知道是不是连接成功 client的IP地址和端口号不 ...
pta构造回文数C语言,【LeetCode】 #9:回文数 C语言相关推荐
- c语言中判断输入是否为数字_C语言编程判断回文数
大家好,我是阿汤哥,前两天在公众号后台收到一个朋友问回文数,今天我们就来谈谈怎么用C语言编程判断一个数是不是回文数. 怎么判断回文数? 首先看定义,什么是回文数. 回文数 定义: 设n是一任意自然数. ...
- [模拟|数位] leetcode 9 回文数
[模拟|数位] leetcode 9 回文数 1.题目 题目链接 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true ...
- 输入行数,输出一个字母回文金字塔(c语言)
前言 最近我刚刚开始学习c语言的循环部分,接下来我来分享一下用c语言输出一个字母回文金字塔. 题目 输入一个行数来决定输出金字塔的行数,输出一个回文字母金字塔. 示例: 输入:5 输出: 第一次尝试 ...
- C语言寻找完全回文数
题目: 寻找300以内(大于0)的所有的对称回文数并输出.回文数是指某数与其反序数相等,如5.131.1551.345676543. 对称回文数指某数与其平方都是回文数.例如,n=11时,112=12 ...
- C语言如何判断回文数
关于如何用C语言判断回文数? 1.什么是回文数? 答:所谓回文数就是一个数字倒着写和正着写相等. 举例:111,121,1221,12321- 2.怎么判断一个数字是不是回文数呢? 答:我们需要一个简 ...
- 用c语言求五位回文数,C语言求回文数(详解版)
问题描述 打印所有不超过n(取n<256)的其平方具有对称性质的数(也称回文数). 问题分析 对于要判定的数n计算出其平方后(存于a),按照"回文数"的定义要将最高位与最低位 ...
- C语言:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
题目:一个5位数,判断它是不是回文数.即12321是回文数,个位与万位相同,十位与千位相同. 程序分析:此题要求判断一个五位数是不是回文数,首先要理解回文数的定义,然后我们就要思考如何处理我们输入的五 ...
- C语言中判断回文数用数组的方法,【C语言】回文数和回文字符串的判断
一.名词解释: 如果一个数正着反着都是一样,就称为这个数是回文数.例如:6, 66, 606, 6666 同理如果一个字符串正着反着都是一样就称为这个字符串是回文字符串,例如"aba&quo ...
- HTML语言的规律,回文数的算式规律
什么叫回文数啊?一般简单的怎么计算啊?回文数是指一个像16461这样"对称"的数,即:将这个数的数字按相反的顺序重新排列后,所得到的数和原来的数一样.这里,"回文&quo ...
- 一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。...
题目:一个5位数,判断它是不是回文数.即12321是回文数,个位与万位相同,十位与千位相同. 思路:使用一个方法来判断这个数是否为回文数 打印出[10000,99999]之间所有的回文数 public ...
最新文章
- java perl_在Java中调用Perl脚本
- Confluence 6 查看空间活动
- 55岁加入Google做程序员,69岁还在编程,这才是代码人生
- 抢鲜体验:十一大行业 demo 全新上线!
- 线性表应用之线性表算法设计六大经典案例
- mybatis配置文件解析错误解决方法
- 如何用shell脚本编译java工程
- 学习笔记(57):Python实战编程-Treeview
- string.intern_使用String.intern()减少内存使用
- 莫烦Pytorch神经网络第四章代码修改
- linux shell express,Linux下使Shell 命令脱离终端在后台运行
- Raki的读paper小记:Model Zoo: A Growing “Brain” That Learns Continually
- lfw分类 python_LFW精确度验证__python读写txt
- delphi java aes_Delphi AES加密(转)
- WhatsApp聊天记录迁移新手机,备份如何找回和删除?
- excel如何生成各种图
- 【转】电子毕业设计题目
- 零件图的尺寸标注---机械制图
- 三国论(6-10章)
- Android NFC开发日志TECH读