摘要:詳細介紹將其他值轉成數(shù)字值。此方法更改數(shù)組的長度。詳細介紹解題思路首先,將傳入的數(shù)字轉換成字符串,并分割成數(shù)組。本許可協(xié)議授權之外的使用權限可以從處獲得。
Create by jsliang on 2019-05-19 09:42:39
Recently revised in 2019-05-19 16:08:24
Hello 小伙伴們,如果覺得本文還不錯,記得給個 star , 小伙伴們的 star 是我持續(xù)更新的動力!GitHub 地址
LeetCode 攻略地址
一 目錄不折騰的前端,和咸魚有什么區(qū)別
目錄 |
---|
一 目錄 |
二 前言 |
三 解題 |
?3.1 解法 - 轉字符串 |
?3.2 解法 - 數(shù)學算法 |
返回目錄
難度:簡單
涉及知識:數(shù)組、數(shù)學
題目地址:leetcode-cn.com/problems/re…
題目內(nèi)容:
給出一個 32 位的有符號整數(shù),你需要將這個整數(shù)中每位上的數(shù)字進行反轉。 示例 1: 輸入: 123 輸出: 321 示例 2: 輸入: -123 輸出: -321 示例 3: 輸入: 120 輸出: 21 注意: 假設我們的環(huán)境只能存儲得下 32 位的有符號整數(shù),則其數(shù)值范圍為 [?231, 231 ? 1]。請根據(jù)這個假設,如果反轉后整數(shù)溢出那么就返回 0。三 解題
返回目錄
官方題解:leetcode-cn.com/problems/re…
解題千千萬,官方獨一家,上面是官方使用 C++ / Java 進行的題解。
小伙伴可以先自己在本地嘗試解題,再看看官方解題,最后再回來看看 jsliang 講解下使用 JavaScript 的解題思路。
3.1 解法 - 轉字符串返回目錄
解題代碼:
var reverse = function(x) {
// 轉數(shù)組
let numberToArray = String(Math.abs(x)).split("");
// 轉字符串
let result = "";
for (const i = 0; i < numberToArray.length; ) {
result += numberToArray.pop();
}
result = x > 0 ");Number(result) : - Number(result);
// 超 [-Math.pow(2, 31), Math.pow(2, 31) - 1] 判斷
if (result > Math.pow(2, 31) - 1
|| result < - Math.pow(2, 31)) {
result = 0;
}
return result;
};
執(zhí)行測試:
x:-1234
return:
-4321
LeetCode Submit:
? Accepted
? 1032/1032 cases passed (88 ms)
? Your runtime beats 99.53 % of javascript submissions
? Your memory usage beats 46.01 % of javascript submissions (35.8 MB)
知識點:
String:將其他值轉成字符串。String 詳細介紹
Number:將其他值轉成數(shù)字值。Number 詳細介紹
pop():pop() 方法從數(shù)組中刪除最后一個元素,并返回該元素的值。此方法更改數(shù)組的長度。pop() 詳細介紹
Math:JS 中的內(nèi)置對象,具有數(shù)學常數(shù)和函數(shù)的屬性和方法。Math 詳細介紹
解題思路:
首先,將傳入的數(shù)字 x 轉換成字符串,并分割成數(shù)組。
然后,遍歷該數(shù)組,將最后一個取出來放到 result 中。
最后,判斷這個 result 是否超過題目限制,如果超過則變成 0 。
進一步思考:
3.2 解法 - 數(shù)學算法返回目錄
解題代碼:
var reverse = function(x) {
let result = 0;
let y = Math.abs(x);
while (y != 0) {
result = result * 10 + y % 10;
y = Math.floor(y / 10);
if (result > Math.pow(2, 31) - 1
|| result < -Math.pow(2, 31)) {
result = 0;
y = 0;
}
}
return x > 0 ");
執(zhí)行測試:
x:-1234
return:
-4321
LeetCode Submit:
? Accepted
? 1032/1032 cases passed (108 ms)
? Your runtime beats 97.4 % of javascript submissions
? Your memory usage beats 23.63 % of javascript submissions (36 MB)
知識點:
Math:JS 中的內(nèi)置對象,具有數(shù)學常數(shù)和函數(shù)的屬性和方法。Math 詳細介紹
解題思路:
首先,我們初始化數(shù)值。
然后,我們需要知道的是,一個數(shù)對 10 取余,可以得到這個數(shù)的個位數(shù);一個數(shù)乘于 10 并加上一個個位數(shù),可以將這個數(shù)字放到末尾。
最后,我們判斷一開始傳入的數(shù)值正負,再返回對應結果即可。
jsliang 廣告推送:
也許小伙伴想了解下云服務器
或者小伙伴想買一臺云服務器
或者小伙伴需要續(xù)費云服務器
歡迎點擊 云服務器推廣 查看!
jsliang 的文檔庫 由 梁峻榮 采用 知識共享 署名-非商業(yè)性使用-相同方式共享 4.0 國際 許可協(xié)議進行許可。
基于github.com/LiangJunron…上的作品創(chuàng)作。
本許可協(xié)議授權之外的使用權限可以從 creativecommons.org/licenses/by… 處獲得。
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://www.ezyhdfw.cn/yun/6823.html