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;
      }
    
  • 相关阅读:
    十天冲刺开发第六天个人工作总结
    十天冲刺开发第五天个人工作总结
    人月神话阅读笔记1
    第六周进度条
    构建之法阅读笔记6
    连通数组的最大子数组和
    团队项目成员和题目
    第五周进度条
    四则运算———安卓版
    构建执法阅读笔记5
  • 原文地址:https://www.cnblogs.com/blogxjc/p/12421521.html
Copyright © 2011-2022 走看看