大数字符串反转

/*
 * @lc app=leetcode.cn id=7 lang=javascript
 *
 * [7] 整数反转
 */


/**
 * 给你一个32位的有符号数字字符串x,返回x中每位上的数字反转后的结果
 * 如果反转后整数超过32位的有符号整数的范围[-2^21, 2^31 - 1],就返回0
 * 示例:
 * 1、输入:232423424242342424324.43
 *    输出:34.423424243242424324232
 * 2、输入:2342134.23423424
 *    输出:42432432.4312432
 * 3、输入:12.121423423425432534534
 *    输出:435435234524324324121.21
 * 4、输入:-0.3000000000000000
 *    输出:-3.0
 * 5、输入:-0.0000000000000000000000234234
 *    输出:-4324320000000000000000000000.0
 */

// @lc code=start
/**
 * @param {string} x
 * @return {string}
 */
var reverse = function(x) {
    let newX = x,
        xStr = x.toString(),
        len = xStr.length,
        MAX_VALUE = 2 ** 31
    console.log(`xStr.indexOf('.') : `, xStr)
    if (xStr.indexOf('.') !== -1) {
        newX = xStr.substring(xStr.indexOf('.') + 1, len)
                .split('')
                .reverse()
                .join('')
    } 
    console.log(`newX : `, newX)
    if (x < -MAX_VALUE && x > MAX_VALUE && newX < -MAX_VALUE && newX > MAX_VALUE) {
        return 0
    } else {
        let isSymbol = xStr.charAt(0) === '-'
        return (isSymbol ? '-' : '') + 
                xStr.substring(1, len)
                    .split('')
                    .reverse()
                    .join('')
                    .replace(/^[0\1]+/g, '') + 
                (isSymbol ? '' : xStr.charAt(0))
    }

};
// @lc code=end

const result1 = reverse('232423424242342424324.43')
console.log(`result1 : `, result1)
const result2 = reverse('2342134.23423424')
console.log(`result2 : `, result2)
const result3 = reverse('12.121423423425432534534')
console.log(`result3 : `, result3)
const result4 = reverse('-0.3000000000000000')
console.log(`result4 : `, result4)
const result5 = reverse('-0.0000000000000000000000234234')
console.log(`result5 : `, result5)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值