leetCode题解之旋转数字
1、题目描述
X is a good number if after rotating each digit individually by 180 degrees, we get a valid number that is different from X.
Each digit must be rotated - we cannot choose to leave it alone. A number is valid if each digit remains a digit after rotation.
0, 1, and 8 rotate to themselves; 2 and 5 rotate to each other; 6 and 9 rotate to each other, and the rest of the numbers do not rotate to any other number and become invalid.
Now given a positive number N, how many numbers X from 1 to N are good?
Example:
Input: 10
Output: 4
Explanation:
There are four good numbers in the range [1, 10] : 2, 5, 6, 9.
Note that 1 and 10 are not good numbers, since they remain unchanged after rotating. 题目是说将一个数字的每个数0-9旋转180度之后,如果旋转之后的数字和之前的数字不相等,则认为该数字是一个“好数”。旋转的规则如下:0,1,8 旋转之后不变,还是0,1,8. 2 旋转之后是5,5 旋转之后是2, 6和9 存在一样的关系。其余数 3,4,7旋转之后是不合法的。意思是一个数字中
如果有3,4,7三个钟的一个存在,则这个数一定不是好数。 2、题目分析 将一个输入的数转换成 string 格式,方便对每一个位数字做处理,转换使用 to_string函数,该函数时C++11中的函数。然后对 string中的每一位做处理,如果出现3,4,7则认为返回 false,认为这个数不是好数。如果是0,1,8则不做处理。是 2,5 ,6,9则分别转换。
最后将该string 转换为 int 型,使用 stoi函数,该函数也是c++11中的函数。
题目要求,输入一个N,输出 1 - N中好数的个数。代码实现时 使用 一个子函数 完成判断,在大循环中累加好数的个数即可。 3、代码
int rotatedDigits(int N) {
// C++ 11中的 to_string 函数可以将数字转换为一个string。
int n = ;
for (int i = ; i <= N; i++ )
{
if( isGoodNum(i) )
n++;
}
return n;
}
bool isGoodNum(int i)
{
string s = to_string(i);
for(auto a = s.begin(); a != s.end(); a++ )
{
if(*a == '' || *a == '' || *a == '' )
return false;
switch(*a)
{
case '':
*a = '';
break;
case '':
*a = '';
break;
case '':
*a = '';
break;
case '':
*a = '';
break;
default:
break;
}
}
int newi = stoi(s);
if(newi == i)
return false;
return true;
}
leetCode题解之旋转数字的更多相关文章
- [LeetCode] Rotated Digits 旋转数字
X is a good number if after rotating each digit individually by 180 degrees, we get a valid number t ...
- 【LeetCode题解】136_只出现一次的数字
目录 [LeetCode题解]136_只出现一次的数字 描述 方法一:列表操作 思路 Java 实现 Python 实现 方法二:哈希表 思路 Java 实现 Python 实现 方法三:数学运算 思 ...
- LeetCode 788. 旋转数字(Rotated Digits) 36
788. 旋转数字 788. Rotated Digits 题目描述 我们称一个数 X 为好数, 如果它的每位数字逐个地被旋转 180 度后,我们仍可以得到一个有效的,且和 X 不同的数.要求每位数字 ...
- Java实现 LeetCode 788 旋转数字(暴力)
788. 旋转数字 我们称一个数 X 为好数, 如果它的每位数字逐个地被旋转 180 度后,我们仍可以得到一个有效的,且和 X 不同的数.要求每位数字都要被旋转. 如果一个数的每位数字被旋转以后仍然还 ...
- LeetCode题解汇总(包括剑指Offer和程序员面试金典,持续更新)
LeetCode题解汇总(持续更新,并将逐步迁移到本博客列表中) LeetCode题解分类汇总(包括剑指Offer和程序员面试金典) 剑指Offer 序号 题目 难度 03 数组中重复的数字 简单 0 ...
- LeetCode题解分类汇总(包括剑指Offer和程序员面试金典,持续更新)
LeetCode题解汇总(持续更新,并将逐步迁移到本博客列表中) 剑指Offer 数据结构 链表 序号 题目 难度 06 从尾到头打印链表 简单 18 删除链表的节点 简单 22 链表中倒数第k个节点 ...
- [LeetCode 题解]:Palindrome Number
前言 [LeetCode 题解]系列传送门: http://www.cnblogs.com/double-win/category/573499.html 1.题目描述 Determine ...
- 【LeetCode题解】7_反转整数
目录 [LeetCode题解]7_反转整数 描述 方法一 思路 Java 实现 类似的 Java 实现 Python 实现 方法二:转化为求字符串的倒序 Java 实现 Python 实现 [Leet ...
- 【LeetCode题解】2_两数相加
目录 [LeetCode题解]2_两数相加 描述 方法一:小学数学 思路 Java 代码(非递归写法) Java 代码(递归写法) Python 代码(非递归写法) [LeetCode题解]2_两数相 ...
随机推荐
- 【jQuery源码】html,text,val
jQuery封装的方法html,text,val .html()用为读取和修改元素的HTML标签 .text()用来读取或修改元素的纯文本内容 .val()用来读取或修改表单元素的value值 一.h ...
- 关于offsetTop的误解
一直以为offset是子元素相对于父元素的距离,后来用了才知道是一个坑,只存在于定位元素中 在做li的搜索的定位的时候,为了得到li相对于ul的距离,本来也可以用li的高度相乘,但是用了offsetT ...
- ztree树的递归
function clickAssignBtn(){ $('#assignBtn').off('click').on('click',function(){ var checkFlag=getRole ...
- webpack4重新梳理一下2
上一篇已经实现了webpack的基本打包操作,但是并没有使用配置文件,而是使用 CLI 来实现打包. 配置文件 // webpack.config.js module.exports = { //入口 ...
- Chapter 3 Phenomenon——4
My truck seemed to have no problem with the black ice that covered the roads. 看起来我的卡车在结冰的路面上面行驶没什么问题 ...
- tomcat启动(三)Catalina简要分析
上篇解析Bootstrap到 daemon.setAwait(true); daemon.load(args); daemon.start(); 这三个方法实际是反射调用org.apache.cata ...
- springboot-25-springboot 集成 ActiveMq
消息的发布有2种形式, 队列式(点对点) 和主题式(pub/sub) 模式, 队列式发布后, 接收者从队列中获取消息后, 消息就会消失, 但任意消费者都可以从队列中接受消息, 消息只能被接受一次 主题 ...
- paxos协议更新日志
基于Paxos协议的数据同步与传统主备方式最大的区别在与Paxos只需任意超过半数的副本在线且相互通信正常,就可以保证服务的持续可用,且数据不丢失. Basic paxos协议更新日志 我们将数据持久 ...
- 面试题27:单链表向右旋转k个节点
Given a list, rotate the list to the right by kplaces, where k is non-negative. For example:Given1-& ...
- Nginx配置日志格式记录cookie
Nginx配置日志格式记录cookie1. 一般用来做UV统计,或者获取用户token等. 配置方式: 在nginx的配置文件中有个变量:$http_cookie来获取cookie的信息.配置方式很 ...