【LeetCode & 剑指offer 刷题笔记】目录(持续更新中...)

67 把字符串转成整数

题目描述

将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0

输入描述:

输入一个字符串,包括数字字母符号,可以为空

输出描述:

如果是合法的数值表达则返回该数字,否则返回0
示例1

输入

复制
+2147483647
1a33

输出

复制
2147483647
0

/*
本题没有考虑前面有空格的情况,与leetcode中题目有点不同
而且把1a33这样的字符也当做异常,不会输出1
1. 处理正负号
2. 处理数字
3. 处理溢出
4. 处理夹杂异常字符的情况
*/
#include <climits>
class Solution
{
public:
    int StrToInt(string str)
    {
        if(str.empty()) return 0;//处理异常情况
       
        int sign = 1; //初始化符号
        int i = 0;
        if(str[i] == '-') //处理正负号
        {
            sign = -1;
            i++;
        }
        else if(str[i] == '+')
            i++;
       
        long long num = 0; //long long不管在32位机还是64位机中均为64位
        for(; i<str.size() && str[i] >= '0' && str[i] <= '9'; i++) //扫描数字
        {
            int digit = str[i] - '0';
            num = num*10 + digit;
            //处理溢出问题
            if( (sign > 0&& num > INT_MAX) || (sign<0 && -num < INT_MIN) )
            {
                num = 0;
                break;
            }
        }
       
        if(i < str.size()) num = 0; //说明是从中途退出,有异常字符
        return num*sign;
    }
};

转载于:https://www.cnblogs.com/wikiwen/p/10224821.html

【LeetCode 剑指offer刷题】字符串题6:67 把字符串转成整数相关推荐

  1. 【LeetCode 剑指offer刷题】字符串题12:Valid Palindrome(回文词系列)

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) Valid Palindrome Given a string, determine if it is a pali ...

  2. 【LeetCode 剑指offer刷题】树题6:28 对称二叉树(101. Symmetric Tree)

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 101. Symmetric Tree /**  * Definition for a binary tree no ...

  3. 【LeetCode 剑指offer刷题】数组题2:57 有序数组中和为s的两个数(167 Two Sum II - Input array is sorted)...

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 57 有序数组中和为s的两个数 题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是 ...

  4. 【LeetCode 剑指offer刷题】树题16:Kth Smallest Element in a BST

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) Kth Smallest Element in a BST Given a binary search tree, ...

  5. 【LeetCode 剑指offer刷题】回溯法与暴力枚举法题6:Number of Islands

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) Number of Islands Given a 2d grid map of '1's (land) and ' ...

  6. 【LeetCode 剑指offer刷题】查找与排序题14:Wiggle Sort(系列)

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) Wiggle Sort II Given an unsorted array nums, reorder it su ...

  7. 【LeetCode 剑指offer刷题】查找与排序题12:Top K Frequent Elements

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) Top K Frequent Elements Given a non-empty array of integer ...

  8. 【LeetCode 剑指offer刷题】矩阵题1:4 有序矩阵中的查找( 74. Search a 2D Matrix )(系列)...

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 74. Search a 2D Matrix Write an efficient algorithm that s ...

  9. 【LeetCode 剑指offer刷题】树题19:8 二叉树中序遍历的下一个结点

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 8 二叉树中序遍历的下一个结点 题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回.注 ...

最新文章

  1. SAP RETAIL 为门店维护多个存储地点
  2. linux 安装包 在此作用域中尚未声明_Linux运行go项目报错:copy_file_range: bad file descriptor...
  3. 请描述一下 cookies,sessionStorage 和 localStorage 的区别?
  4. 成功解决sklearn\ensemble\weight_boosting.py:29: DeprecationWarning: numpy.core.umath_tests is an interna
  5. mdp框架_强化学习:MDP(Markov Decision Process)
  6. python 文档操作_Python 文件操作
  7. 多进程服务器(python 版)
  8. 快逸报表研究-冻结表头
  9. 【目标检测】目标检测算法-从OverFeat到YOLO
  10. 复盘:C语言中int a[][3]={1,2,3,4,5,6,7,8}什么意思,int a[3][]又是什么意思,结果为10的是
  11. 微信任务(投票)分发平台
  12. vue页面的定时刷新
  13. 飞机打扭来扭去的靶子
  14. 【Python】天气预报(发送网易邮件,微信公众测试号,企业微信),周末用时一天,两万字代码,纯肝货(完整项目)一一CSDN21天学习挑战赛
  15. CUDA Programming Model--CUDA编程模型
  16. 安卓SDK——人脸识别
  17. python 通达信数据_[转载]怎么样才能得到 07年08年的1分钟线数据呢,python 和 通达信可以...
  18. (dfs/dp)P2327 [SCOI2005]扫雷
  19. Qt编写可视化大屏电子看板系统18-柱状分组图
  20. js实现左右来回运动效果实例

热门文章

  1. Tomcat工作原理
  2. python各进制、字节串间的转换
  3. CentOS下crash分析内核kdump文件方法
  4. 设计模式=相似模式区别
  5. WF 4.0 之持久化操作一:SqlServer方式的存储
  6. [转载 css]word-wrap,word-break,white-space,text-overflow的区别和用法
  7. Ubuntu20.04 安装qq和微信
  8. Google使用机器学习助力数据中心节能
  9. 基于用户投票的排名算法(一):Delicious和Hacker
  10. RabbitMQ 安装和简单测试