zoukankan      html  css  js  c++  java
  • 剑指Offer-49.把字符串转换成整数(C++/Java)

    题目:

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

    输入描述:

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

    输出描述:

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

    分析:

    注意输入数据的合法性,例如“1234+12”,“12@@#*24”,这样的都是不合法数值,要返回0的。但是如果第一个字符时+或-时是可以的,且影响最后输出的符号,最后还要判断下数字是否超出了范围。

    程序:

    C++

    class Solution {
    public:
        int StrToInt(string str) {
            if(str.size() == 0)
                return 0;
            long long num = 0;
            bool tag = true;
            if(str[0] == '-')
                tag = false;
            for(int i = (str[0] == '+' || str[0] == '-' ? 1 : 0); i < str.size(); ++i){
                if(str[i] >= '0' && str[i] <= '9'){
                    num = num * 10 + (str[i] - '0');
                }
                else{
                    num = 0;
                    break;
                }
            }
            num = tag ? num : (-num);
            if(num > INT_MAX || num < INT_MIN)
                return 0;
            return (int)num;
        }
    };

    Java

    public class Solution {
        public int StrToInt(String str) {
            if(str == null || str.length() == 0)
                return 0;
            long num = 0;
            boolean tag = true;
            if(str.charAt(0) == '-')
                tag = false;
            for(int i = (str.charAt(0) == '+' || str.charAt(0) == '-' ? 1 : 0); i < str.length(); ++i){
                if(str.charAt(i) >= '0' && str.charAt(i) <= '9'){
                    num = num * 10 + (str.charAt(i) - '0');
                }
                else{
                    num = 0;
                    break;
                }
            }
            num = tag ? num : (-num);
            if(num > Integer.MAX_VALUE || num < Integer.MIN_VALUE)
                return 0;
            return (int)num;
        }
    }
  • 相关阅读:
    创建二叉树
    并查集
    opn模块
    【ES6】map、reduce、filter、sort、箭头函数、class继承、yield
    css应用视觉设计
    json解决ajax跨域的原理
    flex盒子布局
    前后台交互ajax请求模块
    react后台项目开发(一)
    高阶函数&&高阶组件(二)
  • 原文地址:https://www.cnblogs.com/silentteller/p/12084105.html
Copyright © 2011-2022 走看看