近期加班比较猛,再加上自己的零零碎碎的事情也特别多,基本上每天“刷题”都在深夜22点以后。每天很忙碌也很充实,比如今天做了今年的首次直播,尽管群里才几十号人,稀里糊涂讲了半小时;为了这个半小时,多少个日夜没睡好了,能力有限又不想搞砸,最终还算是及格吧。回到题目,整数反转,应用场景是……
题目描述
| 分类 | 困难度 | 👍 | 👎 |
|---|---|---|---|
| 算法 | 简单 (34.98%) | 2563 | - |
标签
数学公司
apple | bloomberg给你一个 32 位的有符号整数 x ,返回 x 中每位上的数字反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。
示例 1:
输入:x = 123
输出:321
示例 2:
输入:x = -123
输出:-321
示例3:
输入:x = 120
输出:21
示例4:
输入:x = 0
输出:0
提示:
-231 <= x <= 231 - 1
思路分析
看到题目,心里不禁想,这是内卷中的内卷?有符号,有范围……好的,条件判断有了! 然后说到反转,不知道能不能用数组的反转方法,然后再遍历拼接转为字符串再转为数字; 接着加符号再判断大小范围; 似乎又是很 low 的想法。 垃圾代码走起!
AC 代码
暴力解法
/*
* @lc app=leetcode.cn id=7 lang=javascript
*
* [7] 整数反转
*/
// @lc code=start
/**
* @param {number} x
* @return {number}
*/
var reverse = function (x) {
let _x = Math.abs(x);
let r = "";
let arr = ("" + _x).split("");
for (let i = arr.length - 1; i > -1; i--) {
r += arr[i];
}
r = x < 0 ? -Number(r) : Number(r);
if (r > Math.pow(2, 31) - 1 || r < -Math.pow(2, 31)) {
return 0;
} else {
return r;
}
};
// @lc code=end
待补充
总结
每天一题,争做掘金最 low 的解法!本来算法是以最简单的方式解决问题,而到我这,就变成了能想到什么解法就怎么解,因此解法也彻底显现了最真实的我-- low !
感觉无可救药!
本文正在参与「掘金 2021 春招闯关活动」, 点击查看活动详情