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;
        }
    }
  • 相关阅读:
    中介者模式
    Redis安装
    观察者模式
    第三天:创建型模式--建造者模式
    第二天:创建型模式--抽象工厂模式
    第一天:创建型模式--工厂方法模式
    17天17个Python设计模式--目录
    Python模拟登陆新版知乎
    Flask架站基础篇(八)--SQLAlchemy(2)
    Flask架站基础篇(七)--SQLAlchemy(1)
  • 原文地址:https://www.cnblogs.com/silentteller/p/12084105.html
Copyright © 2011-2022 走看看