<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          leetcode - 整數(shù)反轉(zhuǎn)

          共 1229字,需瀏覽 3分鐘

           ·

          2021-01-13 18:22

          題意

          給出一個(gè) 32 位的有符號(hào)整數(shù),你需要將這個(gè)整數(shù)中每位上的數(shù)字進(jìn)行反轉(zhuǎn)。

          注意:

          • 假設(shè)我們的環(huán)境只能存儲(chǔ)得下 32 位的有符號(hào)整數(shù),則其數(shù)值范圍為 ?[?2^31, 2^31 ? 1]。請(qǐng)根據(jù)這個(gè)假設(shè),如果反轉(zhuǎn)后整數(shù)溢出那么就返回 0。

          示例

          示例 1:

          輸入:x = 123
          輸出:321

          示例 2:

          輸入:x =?-123
          輸出:-321

          示例 3:

          輸入:x = 120
          輸出:21

          示例 4:

          輸入:x =?0
          輸出:0

          提示:

          • -2^31 <= x <= 2^31 - 1

          出處

          鏈接:https://leetcode-cn.com/problems/reverse-integer

          思路

          這題假如是個(gè)小學(xué)一年級(jí)的期末考試題,我們大概會(huì)這么做,從右邊往左邊讀然后依次寫(xiě)下來(lái),如果讀到最后一個(gè)是“-”減號(hào),我們就把它放到寫(xiě)下數(shù)字的最前面。言下之意就是,我不要把它看成數(shù)字處理,我把它看成字符串,然后一翻轉(zhuǎn)。這里考慮下帶不帶負(fù)號(hào),假設(shè)帶上吧,那你就要考慮最后那位是不是“-”了,如果不帶吧,那你就要判斷它原值是正數(shù)還是負(fù)數(shù)了。

          這里需要注意的是在 Javascript 語(yǔ)言中,Number 類(lèi)型的范圍是[-2^53 - 1, 2^53 - 1],所以如果你轉(zhuǎn)換成字符串處理,你是感受不到溢出的,需要去人肉判斷一波,該值是否在題意給定的[?2^31, 2^31 ? 1]區(qū)間。除此之外,Javascript 的字符串中并沒(méi)有字符串反轉(zhuǎn)的 API,但是有數(shù)組反轉(zhuǎn)的 API,所以曲線(xiàn)救國(guó),就先轉(zhuǎn)成字符串然后轉(zhuǎn)成數(shù)組反轉(zhuǎn)再轉(zhuǎn)回字符串。這個(gè)是完全根據(jù) Javascript 語(yǔ)言特性和小學(xué)生思維的解法寫(xiě)的。

          當(dāng)然啦,你也可以按照數(shù)字去解題,如果原值不為 0,將原值對(duì)于 10 取其余數(shù)塞到新組成的字符串的后面,新的原值等于原值整除 10, 前提你還是要先判斷有沒(méi)有溢出,然后該值的正負(fù)性。然后如果該值不為 0,要去掉開(kāi)頭的 0, 如示例 3 所示.

          代碼

          /**
          ?*?@param?{number}?x
          ?*?@return?{number}
          ?*/
          const?reverse?=?function(x)?{
          ????const?str?=?Math.abs(x).toString();
          ????const?str_reverse?=?str.split('').reverse().join('');
          ????return?x?>=?0???Number(str_reverse)?>?Math.pow(2,?31)?-?1???0?:?Number(str_reverse)?:?-Number(str_reverse)?};

          export?default?reverse;

          測(cè)試

          import?twoSum?from?'../../code/leetcode/7';

          describe('test?function?reverse:',?()?=>?{

          ????test('test?case?x?=?123',?()?=>?{
          ????????const?res?=?twoSum(123);
          ????????expect(res).toBe(321);
          ????});

          ????test('test?case?x?=?-123',?()?=>?{
          ????????const?res?=?twoSum(-123);
          ????????expect(res).toBe(-321);
          ????});

          ????test('test?case?x?=?120',?()?=>?{
          ????????const?res?=?twoSum(120);
          ????????expect(res).toBe(21);
          ????});

          ????test('test?case?x?=?0',?()?=>?{
          ????????const?res?=?twoSum(0);
          ????????expect(res).toBe(0);
          ????});

          ????test('test?case?x?=?1534236469',?()?=>?{
          ????????const?res?=?twoSum(1534236469);
          ????????expect(res).toBe(0);
          ????});
          })

          思考

          • 就上面提到的用數(shù)字取余數(shù)的解法,有興趣的同學(xué)可以去試下

          • 題目中給出的區(qū)間具體值是多大2^31-1=2147483647,-2^31=-2147483648

          參考

          JS 的 Number 類(lèi)型:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Number

          說(shuō)明

          本文首發(fā)于 GitHub 倉(cāng)庫(kù)https://github.com/ataola/coding,線(xiàn)上閱讀地址:https://zhengjiangtao.cn/coding/,轉(zhuǎn)載請(qǐng)注明出處,謝謝!


          瀏覽 66
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产二区在线视频观看 | 国产精品久久久久久久免牛肉蒲团 | 国内毛片毛片毛片毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 黄色视频网站免费在线观看 | 麻豆成人av影院 漫画视频搞黄网站 |