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;
    	}
    };
    
  • 相关阅读:
    Best Time to Buy and Sell Stock III
    Valid Palindrome
    Longest Substring Without Repeating Characters
    Copy List with Random Pointer
    Add Two Numbers
    Recover Binary Search Tree
    Anagrams
    ZigZag Conversion
    Merge k Sorted Lists
    Distinct Subsequences
  • 原文地址:https://www.cnblogs.com/Rainlee007/p/5879706.html
Copyright © 2011-2022 走看看