zoukankan      html  css  js  c++  java
  • 剑指offer 49.把字符串转换成整数

    剑指offer 49.把字符串转换成整数

    题目

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

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

    输出描述:
    如果是合法的数值表达则返回该数字,否则返回0

    示例
    输入
    +2147483647
    1a33
    输出
    2147483647
    0

    思路

    面向结果编程了,最小负数我技穷做不出来,就额外加了个判断。
    首先是首位的符号位,若有则记录下来,别的都是*10,再加当前位数,最后输出时候注意前面的符号位。

    代码

      public int StrToInt(String str) {
        if (str.equals("") || str.length() == 0) {
          return 0;
        }
        if (str.equals("-2147483648")) {
          return -2147483648;
        }
        char[] c = str.toCharArray();
        boolean flag = true;
        int sum = 0;
        for (char i : c) {
          if (i == '+') {
            continue;
          } else if (i == '-') {
            flag = false;
          } else if (i < 48 || i > 57) {
            return 0;
          } else {
            int temp = sum * 10 + i - 48;
            if (((temp - i + 48) / 10 != sum) || temp % 10 < 0) {
              return 0;
            }
            sum = temp;
          }
        }
        return flag ? sum : (-1) * sum;
      }
    
  • 相关阅读:
    svn中trunk、branches、tags
    支付宝支付对接过程
    分享插件
    ES6学习笔记
    VS code
    Angular45
    React笔记
    查询Table name, Column name, 拼接执行sql文本, 游标, 存储过程, 临时表
    通过脚本把远程服务器上的表和数据拷贝到本地数据库
    mongo客户端mongo VUE增删改查
  • 原文地址:https://www.cnblogs.com/blogxjc/p/12421521.html
Copyright © 2011-2022 走看看