力扣第七题整数反转和第八题字符串转换整数

题目:

思路:

1.将整数从个位依次循环拿出在依次循环进位
2.返回结果进行判断是否在帧数范围内
 

class Solution {

    public int reverse(int x) {

        long result = 0;

        if(x==0)

        return 0;

        while(x != 0){

            result = result * 10;

            result += x % 10;

            x /= 10;

        }

        return (long)((int)result) == result ? (int)result : 0;

    }

}

题目:

 思路:

1.先将字符串中的空格去掉
2.将符号位转换为1跟-1代表正与负,然后与结果相乘,得出最后结果
3.然后将字符串中的数字以循环得出
4.因为我们返回的值为ASCII值,所以一个数的ASCII码-0的所对应的ASCII也是其对应的整数值

class Solution {

    public int myAtoi(String s) {

        int result=0;

        int symbol=1;

        int i=0;

        while(i<s.length()&&s.charAt(i)==' '){

            i++;

        }

        if(i==s.length()){

            return 0;

        }

        if(s.charAt(i)=='-'){

            symbol=-1;

            i++;

        }else if(s.charAt(i)=='+'){

            i++;

        }

        while(i<s.length()&&s.charAt(i)>='0'&&s.charAt(i)<='9'){

            int x = s.charAt(i) - '0';

            if (flag > 0 && result > (Integer.MAX_VALUE - x) / 10) {

                return Integer.MAX_VALUE;

            }

            if (flag < 0 && -result < (Integer.MIN_VALUE + x) / 10) {

                return Integer.MIN_VALUE;

            }

            if (-result * 10 - x == Integer.MIN_VALUE) 

            return Integer.MIN_VALUE;

            result = result * 10 + x;

            i++;

        }

         result *= symbol;

         return result;

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值