zoukankan      html  css  js  c++  java
  • 整数反转

    //给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 
    //
    // 示例 1:
    //
    // 输入: 123
    //输出: 321
    //
    //
    // 示例 2:
    //
    // 输入: -123
    //输出: -321
    //
    //
    // 示例 3:
    //
    // 输入: 120
    //输出: 21
    //
    //
    // 注意:
    //
    // 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。

    解题思路:先去除符号,转换成char数组,遍历数组,将头尾交换(只需要遍历一半),最后根据原数字的大小还原符号返回
    class Solution {
        public int reverse(int x) {
            int absX = 0;
            if(x < 0){
                absX = Math.abs(x);
            }else {
                absX = x;
            }
    
            int result = 0 ;
            char[] xChar = String.valueOf(absX).toCharArray();
            for (int i = 0 ; i < (xChar.length)/2 ; i++) {
                char temp = 0 ;
                temp = xChar[i];
                xChar[i] = xChar[xChar.length-1-i];
                xChar[xChar.length-1-i] = temp;
            }
            try{
                result = Integer.parseInt(String.valueOf(xChar));
            }catch (Exception e){
                return 0;
            }
            if (x < 0 ){
                return -1 * result;
            }else {
               return result;
            }
        }
     }



    不和别人一样,不复制只真正理解
  • 相关阅读:
    机器人学——1.6-双向量表示法
    机器人学——1.5-奇异点及万向节锁
    机器人学——1.4-三角度表示法
    机器人学——1.3-正交旋转矩阵
    MySQL数据库操作
    ArrayList和LinkedList的区别
    redis 常用命令
    idea快捷键
    Spring
    JDBC
  • 原文地址:https://www.cnblogs.com/Vinlen/p/12849053.html
Copyright © 2011-2022 走看看