Leetcode 练习 2.1
整数反转 第一题
题目:
给你一个 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
以下是相关解答,仅使用 JavaScript 语言
解题思路1
将 x 从 Number 对象转成 String 对象,用 String 对象的方法 split 将 String 分割成 Array ,然后用 Array 对象的 reverse 方法进行翻转,再用 Array 对象的 join 方法将 Array 转成 String,最后用 parseInt 将 String 变回 Number。
因为分割成字符数组的原因,最后一步处理的 String 在 x<0 时会失去结尾的负号,所以 x<0 时结果加负号。
最后 return 时用三目进行判断,以满足题目要求。
代码
/**
* @param {number} x
* @return {number}
*/
var reverse = function (x) {
let y = parseInt(x.toString().split("").reverse().join(""));
if (x < 0)
y = - y;
return y > 2147483647 || y < -2147483648 ? 0 : y;
};
代码运行结果
关于解法1中的代码进行分析
1号代码块
let y = parseInt(x.toString().split("").reverse().join(""));
关于这里面的东西,现在还不明白,以后再补充
2号代码块
if (x < 0)
y = - y;
return y > 2147483647 || y < -2147483648 ? 0 : y;
解题思路2
代码
/**
* @param {number} x
* @return {number}
*/
var reverse = function(x) {
let result = 0;
while(x !== 0) {
result = result * 10 + x % 10;
x = (x / 10) | 0;
}
return (result | 0) === result ? result : 0;
};
// 该按空格的时候还是按吧,不然leetcode上面老是报错,一看才发现是因为没有按空格
代码运行结果
关于解法2中的代码进行分析
1号代码块
result = result * 10 + x % 10;
x = (x / 10) | 0;
JavaScript 字面量
在编程语言中,一般固定值称为字面量,如 3.14
- 数字(Number)字面量 可以是整数或者小数,或者是科学计数(e)。
- 字符串(String)字面量 可以使用单引号或者双引号
- 表达式字面量 用于计算,如 5+6 、5*10
- 数组(Array)字面量 定义一个数组: [40,100,1,5,25,10]
- 对象(Object)字面量 定义一个对象: {firstName:“John”, lastName:“Doe”, age:50, eyeColor:“blue”}
- 函数(Function)字面量 定义一个函数: function myFunction(a,b){ return a*b;}
JavaScript 变量
在编程语言中,变量用于存储数据值。
JavaScript 使用关键字 var 来定义变量,使用等号来为变量赋值
var x, length
x = 5
length = 6
变量可以通过变量名访问。在指令式语言中,变量通常式可变得。字面量是一个恒定的值。
变量是一个名称, 字面量是一个值。
JavaScript 操作符
JavaScript 使用算术运算符来计算值
JavaScript 使用赋值运算符给变量赋值
在HTML中, JavaScript 语句向浏览器发出命令。语句是用分号分隔的。
JavaScript 关键字
JavaScript 关键字用于标识要执行的操作。
和其他任何编程语言一样,JavaScript 保留了一些关键字为自己所用。
var 关键字告诉浏览器创建一个新的变量: var x = 5+6; var y = x*10;
在 JavaScript 对于大小写是敏感的
函数 getElementByld 与 getElementbyID 是不同的
同样的,变量 myVariable 与 MyVariable 也是不同的
JavaScript 数据类型
2号代码块
while(x !== 0){
result = result * 10 + x % 10;
x = (x / 10) | 0;
}
return (result | 0) === result ? result : 0;
PS:以上是本人关于Leetcode的学习笔记,主要目的是想通过做题将知识点进行回顾整合,本人学渣,如有不对的地方,敬请赐教,欢迎在评论区下留言指正 ^ _ ^