成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

LeetCode - 009 - 回文數(shù)(palindrome-number)

hikui / 1160人閱讀

摘要:最后,我們判斷一開始的兩種情況,并返回或者即可。本許可協(xié)議授權(quán)之外的使用權(quán)限可以從處獲得。

Create by jsliang on 2019-05-22 19:30:42
Recently revised in 2019-05-23 11:42:52

一 目錄

不折騰的前端,和咸魚有什么區(qū)別

目錄
一 目錄
二 前言
三 解題
?3.1 解題 - 數(shù)組操作
?3.1 解題 - 數(shù)學(xué)算法
二 前言

返回目錄

難度:簡(jiǎn)單

涉及知識(shí):數(shù)學(xué)

題目地址:leetcode-cn.com/problems/pa…

題目?jī)?nèi)容

判斷一個(gè)整數(shù)是否是回文數(shù)?;匚臄?shù)是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數(shù)。

示例 1:
輸入: 121
輸出: true

示例 2:
輸入: -121
輸出: false
解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。因此它不是一個(gè)回文數(shù)。

示例 3:
輸入: 10
輸出: false
解釋: 從右向左讀, 為 01 。因此它不是一個(gè)回文數(shù)。

進(jìn)階:
你能不將整數(shù)轉(zhuǎn)為字符串來解決這個(gè)問題嗎?
三 解題

返回目錄

官方題解:leetcode-cn.com/problems/pa…

解題千千萬,官方獨(dú)一家,上面是官方使用 C# 進(jìn)行的題解。

小伙伴可以先自己在本地嘗試解題,再看看官方解題,最后再回來看看 jsliang 講解下使用 JavaScript 的解題思路。

3.1 解法 - 數(shù)組操作

返回目錄

解題代碼

var isPalindrome = function(x) {
  const arr = String(x).split("");
  for (let i = 0; i < arr.length / 2; i++) {
    if (arr[i] !== arr[arr.length - (i + 1)]) {
      return false;
    }
  }
  return true;
};

執(zhí)行測(cè)試

    x1231

    return

false

LeetCode Submit

? Accepted
  ? 11509/11509 cases passed (316 ms)
  ? Your runtime beats 97.12 % of javascript submissions
  ? Your memory usage beats 67.78 % of javascript submissions (45.5 MB)

知識(shí)點(diǎn)

    split()split() 方法使用指定的分隔符字符串將一個(gè) String 對(duì)象分割成字符串?dāng)?shù)組,以將字符串分隔為子字符串,以確定每個(gè)拆分的位置。split() 詳細(xì)介紹

解題思路

將數(shù)字轉(zhuǎn)為數(shù)組來判斷,是比較簡(jiǎn)單的一種方法:

首先,我們將數(shù)字轉(zhuǎn)成字符串,再轉(zhuǎn)成數(shù)組。

然后,我們循環(huán)遍歷這個(gè)數(shù)組。

接著,判斷第 i 位和第 length - (i + 1) 位(例如 1231,第 0 位對(duì)應(yīng)的是第 length - 1 位,第 1 位對(duì)應(yīng)的是第 length - 2 位)。

最后,如果循環(huán)判斷沒問題,就返回 true;如果循環(huán)判斷有問題,直接在循環(huán)中 return false。

3.2 解法 - 數(shù)學(xué)算法

返回目錄

解題代碼

var isPalindrome = function(x) {
  if(x < 0 || (x % 10 == 0 && x != 0)) {
    return false;
  }
  let revertedNumber = 0;
  while(x > revertedNumber) {
    revertedNumber = revertedNumber * 10 + x % 10;
    x = Math.floor(x / 10);
  }
  return x === revertedNumber || x === Math.floor(revertedNumber / 10);
};

執(zhí)行測(cè)試

    x12321

    return

true

LeetCode Submit

? Accepted
  ? 11509/11509 cases passed (316 ms)
  ? Your runtime beats 97.12 % of javascript submissions
  ? Your memory usage beats 67.78 % of javascript submissions (45.5 MB)

知識(shí)點(diǎn)

    Math:JS 中的內(nèi)置對(duì)象,具有數(shù)學(xué)常數(shù)和函數(shù)的屬性和方法。Math 詳細(xì)介紹

解題思路

首先,我們可以想象:當(dāng)一個(gè)數(shù)的長(zhǎng)度為偶數(shù),那么它對(duì)折過來應(yīng)該是相等的;當(dāng)一個(gè)數(shù)的長(zhǎng)度是奇數(shù),那么它對(duì)折過來后,有一個(gè)的長(zhǎng)度需要去掉一位數(shù)(除以 10 并取整),因?yàn)槠鏀?shù)長(zhǎng)度的那個(gè)數(shù),我們不需要判斷它中間的數(shù)字。

我們定義傳遞過來的參數(shù)為:x,對(duì)折的數(shù)字為:z,而 yx 目前的個(gè)位數(shù)。

然后,我們需要知道如何獲取到一個(gè)數(shù)的個(gè)位數(shù):y = x % 10,我們也需要知道如何將單個(gè)數(shù)字不斷添加到一個(gè)數(shù)的末尾:z = z * 10 + y,例如:z = 1 * 10 + 2 = 12。

接著,我們只需要判斷 x 是不是小于 z 了,畢竟當(dāng)它小于的時(shí)候,說明數(shù)字已經(jīng)對(duì)半或者過半了。

最后,我們判斷一開始的兩種情況,并返回 true 或者 false 即可。


jsliang 廣告推送:
也許小伙伴想了解下云服務(wù)器
或者小伙伴想買一臺(tái)云服務(wù)器
或者小伙伴需要續(xù)費(fèi)云服務(wù)器
歡迎點(diǎn)擊 云服務(wù)器推廣 查看!


jsliang 的文檔庫(kù) 由 梁峻榮 采用 知識(shí)共享 署名-非商業(yè)性使用-相同方式共享 4.0 國(guó)際 許可協(xié)議進(jìn)行許可。
基于github.com/LiangJunron…上的作品創(chuàng)作。
本許可協(xié)議授權(quán)之外的使用權(quán)限可以從 creativecommons.org/licenses/by… 處獲得。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/7195.html

相關(guān)文章

  • LeetCode 攻略 - 2019 年 7 月上半月匯總(55 題攻略)

    摘要:微信公眾號(hào)記錄截圖記錄截圖目前關(guān)于這塊算法與數(shù)據(jù)結(jié)構(gòu)的安排前。已攻略返回目錄目前已攻略篇文章。會(huì)根據(jù)題解以及留言內(nèi)容,進(jìn)行補(bǔ)充,并添加上提供題解的小伙伴的昵稱和地址。本許可協(xié)議授權(quán)之外的使用權(quán)限可以從處獲得。 Create by jsliang on 2019-07-15 11:54:45 Recently revised in 2019-07-15 15:25:25 一 目錄 不...

    warmcheng 評(píng)論0 收藏0
  • LeetCode 攻略 - 2019 年 7 月下半月匯總(100 題攻略)

    摘要:月下半旬攻略道題,目前已攻略題。目前簡(jiǎn)單難度攻略已經(jīng)到題,所以后面會(huì)調(diào)整自己,在刷算法與數(shù)據(jù)結(jié)構(gòu)的同時(shí),攻略中等難度的題目。 Create by jsliang on 2019-07-30 16:15:37 Recently revised in 2019-07-30 17:04:20 7 月下半旬攻略 45 道題,目前已攻略 100 題。 一 目錄 不折騰的前端,和咸魚有什么區(qū)別...

    tain335 評(píng)論0 收藏0
  • LeetCode 精選TOP面試題【51 ~ 100】

    摘要:有效三角形的個(gè)數(shù)雙指針最暴力的方法應(yīng)該是三重循環(huán)枚舉三個(gè)數(shù)字。總結(jié)本題和三數(shù)之和很像,都是三個(gè)數(shù)加和為某一個(gè)值。所以我們可以使用歸并排序來解決這個(gè)問題。注意因?yàn)闅w并排序需要遞歸,所以空間復(fù)雜度為 ...

    Clect 評(píng)論0 收藏0
  • 前端 | 每天一個(gè) LeetCode

    摘要:在線網(wǎng)站地址我的微信公眾號(hào)完整題目列表從年月日起,每天更新一題,順序從易到難,目前已更新個(gè)題。這是項(xiàng)目地址歡迎一起交流學(xué)習(xí)。 這篇文章記錄我練習(xí)的 LeetCode 題目,語言 JavaScript。 在線網(wǎng)站:https://cattle.w3fun.com GitHub 地址:https://github.com/swpuLeo/ca...我的微信公眾號(hào): showImg(htt...

    張漢慶 評(píng)論0 收藏0
  • LeetCode9.回文數(shù) JavaScript

    摘要:回文數(shù)判斷一個(gè)整數(shù)是否是回文數(shù)?;匚臄?shù)是指正序從左向右和倒序從右向左讀都是一樣的整數(shù)。示例輸入輸出示例輸入輸出解釋從左向右讀為。因此它不是一個(gè)回文數(shù)。 LeetCode9.回文數(shù) JavaScript 判斷一個(gè)整數(shù)是否是回文數(shù)。回文數(shù)是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數(shù)。 示例 1: 輸入: 121 輸出: true 示例 2: 輸入: -121 輸出: false...

    junbaor 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<