整数反转

题目描述

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

解题思路

x%10 取一位,x/10下一位,注意越界,

代码实现

class Solution {public:int reverse(int x) {int sum = 0;while(x){if(sum<INT_MIN/10) return 0;if(sum>INT_MAX/10)return 0;sum=sum*10+x%10;x/=10;}return sum;}
};

字符串转整数

题目描述

请你来实现一个 atoi 函数,使其能将字符串转换成整数。

首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。

当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。

该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符可以被忽略,它们对于函数不应该造成影响。

注意:假如该字符串中的第一个非空格字符不是一个有效整数字符、字符串为空或字符串仅包含空白字符时,则你的函数不需要进行转换。

在任何情况下,若函数不能进行有效的转换时,请返回 0。

说明:

假设我们的环境只能存储 32 位大小的有符号整数,那么其数值范围为 [−231, 231 − 1]。如果数值超过这个范围,请返回 INT_MAX (231 − 1) 或 INT_MIN (−231) 。

解题思路

第一步

去除字符串中的所有空格,只记录有效字符的下标
如果都是空格,就直接返回0

int length = s.size();
int index = 0;
while(index < length)
{if(s[length] != ' ')break;index++;
}
if(index == length)return 0;

第二步

判断正负,用个标记为来表示,起初为正

int signal = 1;
if(s[index] = '+')index++;
else if(s[index] = '-')
{   singal = -1;index++;
}

第三步

转换,首先判断是否越界,再进行转换,

int res = 0; //保存结果
while(index<legnth)
{//1.取一个字符char Cur = s[index];//2.判断是否为数字字符if(Cur < '0' || Cur >'9')break;//3.判断是否越界if (res > INT_MAX / 10 || (res == INT_MAX / 10 && (curChar - '0') > INT_MAX % 10)) {return INT_MAX;}if (res < INT_MIN / 10 || (res == INT_MIN / 10 && (curChar - '0') > -(INT_MIN % 10))) {return INT_MIN;}//4.转换res = res*10 + signal*(Cur - '0');//5.取下一个字符index++;
}

代码实现

class Solution {public:int myAtoi(string str) {unsigned long len = str.length();int index = 0;while (index < len) {if (str[index] != ' ') {break;}index++;}//如果全部是空格,直接返回0if (index == len) {return 0;}int sign = 1;if (str[index] == '+') {index++;} else if (str[index] == '-') {sign = -1;index++;}int res = 0;while (index < len) {char curChar = str[index];if (curChar < '0' || curChar > '9') {break;}if (res > INT_MAX / 10 || (res == INT_MAX / 10 && (curChar - '0') > INT_MAX % 10)) {return INT_MAX;}if (res < INT_MIN / 10 || (res == INT_MIN / 10 && (curChar - '0') > -(INT_MIN % 10))) {return INT_MIN;}res = res * 10 + sign * (curChar - '0');index++;}return res;}
};

LeetCode【7--整数反转】 LeetCode【8--字符串转整数】相关推荐

  1. 整数反转leetcode java_【Java】【每日算法/刷穿 LeetCode】7. 整数反转(简单)

    首页 专栏 java 文章详情 0 [每日算法/刷穿 LeetCode]7. 整数反转(简单) 宫水三叶发布于 今天 12:10 题目描述 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数 ...

  2. 整数反转Java_详解 LeetCode_007_整数反转(Java 实现)

    LeetCode_007_整数反转 题目描述 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: ...

  3. php把时间变成整数,php怎么将字符串转为整数

    php将字符串转为整数的方法:可以利用intval()函数来实现.intval()函数通过使用指定的进制base转换,返回变量的integer数值.intval()函数不能用于object,否则会产生 ...

  4. php 整数 比较,php中字符串和整数比较

    今天在处理php中循环的时候,有个比比较的操作,但是结果一直不是自己预判的,于是跟踪了一下,发现了字符串和整数进行比较的时候,会把字符串转换成整数然后进行比较.这个在java,c这种强类型的语言中不会 ...

  5. php怎么字符串转为整数,在PHP中将字符串转换为整数的最快方法

    我刚刚设置了一个快速的基准测试练习: Function time to run 1 million iterations --------------------------------------- ...

  6. LeetCode实战:反转链表

    背景 为什么你要加入一个技术团队? 如何加入 LSGO 软件技术团队? 我是如何组织"算法刻意练习活动"的? 为什么要求团队的学生们写技术Blog 题目英文 Reverse a s ...

  7. LeetCode07整数反转(JAVA)

    LeetCode题解(JAVA) LeetCode07--整数反转 LeetCode题解(JAVA) 题目描述 思路 代码实现 题目描述 给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分 ...

  8. 任意输入一个整数反转输出

    任意输入一个整数反转输出 任意输入一个整数反转输出#include<stdio.h> #include<string.h> #include <math.h> #i ...

  9. 20190818:(leetcode习题)反转字符串整数反转

    反转字符串&&整数反转 题目 大致思路 代码实现 题目 反转字符串 整数反转 大致思路 反转字符串的实现基本没有任何区别,相当于StringBuilder对象的reverse方法的重写 ...

  10. LeetCode实战:字符串转换整数 (atoi)

    题目英文 Implement atoi which converts a string to an integer. The function first discards as many white ...

最新文章

  1. Ubuntu双击运行Shell脚本
  2. IntelliJ IDEA 2019.2最新解读:性能更好,体验更优,细节处理更完美!
  3. 1.6 @FunctionalInterface注解
  4. Lombok pojo类小神器
  5. ACM-ICPC 2018 焦作赛区网络预赛
  6. 我所认识的JavaScript正则表达式
  7. 前端学习(3190):react简介二
  8. 工作79:获取对应中文
  9. Enterprise Services (COM+)服务组件开发异常分析
  10. sd省队集训d1t1
  11. 产品经理学习记录(一)
  12. MySQL数据库反向生成powerdesigner模型
  13. java plugin firefox_Firefox 中使用 Java 插件
  14. DOS命令行界面打开文件
  15. 计算机如何调整对比度,怎么调整电脑显示器亮度和对比度
  16. Word中删除全部页眉页脚的方法
  17. c语言-蓝桥杯-门牌制作问题
  18. Macmini 2018安装 ArchLinux
  19. 在ubuntu中查看摄像头
  20. 计算机地图综合制图实验报告,地图制图实验报告.doc

热门文章

  1. exchange 删除邮件
  2. leetcode 罗马数字转整数
  3. mysql-表完整性约束
  4. c语言else匹配问题
  5. Chrome/Chromium HTML5 video 视频播放硬件加速
  6. 神奇的LINQ ---可以通过对象来查询数据
  7. hprose for java 教程_hprose for java源码分析-4
  8. java se程序设计_JavaSE--Java 的基本程序设计结构
  9. 求10以内平均数的c语言,求助 给小学生出题,自己选加减乘除 做10题 10以内的数 然后统计分...
  10. 请先设置tkk_搅拌站水泥罐仓顶除尘器设置及调整