/*
* @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)
大数字符串反转
最新推荐文章于 2022-09-05 23:36:30 发布