AcWing
  • 首页
  • 题库
  • 题解
  • 分享
  • 问答
  • 活动
  • 应用
  • 吐槽
  • 登录/注册

AcWing 87. 把字符串转换成整数--Java代码    原题链接    中等

作者: 作者的头像   木木灬 ,  2019-05-07 16:56:32 ,  阅读 830


0


1

算法1

各种情况的检查 $O(n)$
  1. 首先去除空格
  2. 然后判断非法字符串,如空或长度为0
  3. 然后判断是否有符号位
  4. 然后判断是否是在‘0’-‘9’
  5. 然后求的当前的值为多少,正的直接加,负的应该加标志位去减掉
  6. 然后判断是否溢出,如果当前的得到的值比之前的值小,说明正的变成负的,溢出了,反之亦然
  7. 最后输出

Java 代码

class Solution {
    public int strToInt(String str) {

        str = str.trim();
        int result = 0;
        int symbol = 1;
        boolean isValid = false;
        char[] array = str.toCharArray();
        if (array == null || array.length <= 0) {
            return 0;
        } 
        if (array[0] == '-' ) {
            symbol = -1;
        }
        for(int i =  (array[0] == '+' || array[0] == '-') ? 1 : 0; i < array.length; i++){
            if (!('0' <= array[i] && array[i] <= '9') ){
                isValid = true;
                return result * symbol;
            }
             int result1 = result * 10 + symbol * (array[i] - '0');
             if(symbol==1){
                 if(result1>result){
                     result = result1;
                 }else{
                    return Integer.MAX_VALUE;
                 }
             }else if(symbol==-1){
                 if(result1<result){
                     result = result1;
                 }else{
                    return Integer.MIN_VALUE;
                 }
             }
        }
        return result ;
    }
}


算法2

(暴力枚举) $O(n^2)$

blablabla

时间复杂度分析:blablabla

C++ 代码

blablabla

0 评论

你确定删除吗?

© 2018-2021 AcWing 版权所有  |  京ICP备17053197号-1
联系我们  |  常见问题
AcWing
请输入登录信息
更多登录方式: 微信图标 qq图标
请输入绑定的邮箱地址
请输入注册信息