zoukankan      html  css  js  c++  java
  • 关于string转整数

    又是leetcode的easy级别题,很基本的题目,却漏考虑很多情况,动手前一定要考虑清楚呀!!!

    就当做锻炼写作能力吧,先上题目!

    将文本转换成整数,注意一下几点:

    1.文本里面第一个不为空白的字符应该为数字或‘+’、‘-’,否则返回0;

    2.文本中数字后面的文本不影响结果;

    3.转换后的值若超过了int的最值应返回最值。

    上代码吧!

    class Solution {
    public:
    	int myAtoi(string str) {
    		int start = 0;
    		for (int i = 0; i!= str.length(); i++)
    		{
    			if (str[i] == ' ')
    				start++;
    			else
    				break;
    		}
    		if(start>=str.length())
    		    return 0;
    		    
    		int p = 0,t=0;
    		if (str[start] == '-')
    		{
    			start++;
    			p = 1;
    		}
    		else if (str[start] == '+')
    			start++;
    		for (; start <str.length(); start++)
    		{
    			
    			char m = str[start] - '0';
    			if (m >= 0 && m <= 9)
    			{
    			    if(t>INT_MAX/10)
    			        if(p==0)
    			            return INT_MAX;
    			        else
    			            return INT_MIN;
    		    	t *= 10;
    			        if(p==0&&t>INT_MAX-m)
    			            return INT_MAX;
    			        else if(p!=0&&-t<(INT_MIN+m))
    			            return INT_MIN;
    				t += m;
    			}
    			else
    				break;
    		}
    		return p==0?t:-t;
    	}
    };
    
  • 相关阅读:
    170325 第六章应用层 域名系统 DNS
    文件操作(Linux系统调用)
    进程优先级,进程nice值和%nice的解释
    常用的操作系统进程调度算法
    fork函数返回值问题
    进度条的实现
    find命令
    单链表的插入排序
    B树
    排序
  • 原文地址:https://www.cnblogs.com/Rainlee007/p/5879706.html
Copyright © 2011-2022 走看看