<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 - 字符串轉(zhuǎn)換整數(shù) (atoi)

          共 1535字,需瀏覽 4分鐘

           ·

          2021-01-22 21:14

          題意

          請你來實(shí)現(xiàn)一個(gè) ?atoi? 函數(shù),使其能將字符串轉(zhuǎn)換成整數(shù)。

          首先,該函數(shù)會根據(jù)需要丟棄無用的開頭空格字符,直到尋找到第一個(gè)非空格的字符為止。接下來的轉(zhuǎn)化規(guī)則如下:

          如果第一個(gè)非空字符為正或者負(fù)號時(shí),則將該符號與之后面盡可能多的連續(xù)數(shù)字字符組合起來,形成一個(gè)有符號整數(shù)。假如第一個(gè)非空字符是數(shù)字,則直接將其與之后連續(xù)的數(shù)字字符組合起來,形成一個(gè)整數(shù)。該字符串在有效的整數(shù)部分之后也可能會存在多余的字符,那么這些字符可以被忽略,它們對函數(shù)不應(yīng)該造成影響。假如該字符串中的第一個(gè)非空格字符不是一個(gè)有效整數(shù)字符、字符串為空或字符串僅包含空白字符時(shí),則你的函數(shù)不需要進(jìn)行轉(zhuǎn)換,即無法進(jìn)行有效轉(zhuǎn)換。

          在任何情況下,若函數(shù)不能進(jìn)行有效的轉(zhuǎn)換時(shí),請返回 0 。

          注意:

          • 本題中的空白字符只包括空格字符 ' '。

          • 假設(shè)我們的環(huán)境只能存儲 32 位大小的有符號整數(shù),那么其數(shù)值范圍為 ?[?2^31, 2^31 ? 1]。如果數(shù)值超過這個(gè)范圍,請返回 ? 2^31 ? 1 或 ?2^31 。

          示例

          示例 ?1:

          輸入:?"42"
          輸出:?42

          示例 ?2:

          輸入:?"?-42"
          輸出:?-42
          解釋:?第一個(gè)非空白字符為?'-', 它是一個(gè)負(fù)號。
          ??我們盡可能將負(fù)號與后面所有連續(xù)出現(xiàn)的數(shù)字組合起來,最后得到?-42 。

          示例 ?3:

          輸入:?"4193?with?words"
          輸出:?4193
          解釋:?轉(zhuǎn)換截止于數(shù)字?'3'?,因?yàn)樗南乱粋€(gè)字符不為數(shù)字。

          示例 ?4:

          輸入:?"words?and?987"
          輸出:?0
          解釋:?第一個(gè)非空字符是?'w', 但它不是數(shù)字或正、負(fù)號。
          因此無法執(zhí)行有效的轉(zhuǎn)換。

          示例 ?5:

          輸入:?"-91283472332"
          輸出:?-2147483648
          解釋:?數(shù)字?"-91283472332"?超過 32 位有符號整數(shù)范圍。
          ??因此返回 INT_MIN (?231)?。

          提示

          • 0 <= s.length <= 200

          • s 由英文字母(大寫和小寫)、數(shù)字、' '、'+'、'-' 和 '.' 組成

          出處

          鏈接:https://leetcode-cn.com/problems/string-to-integer-atoi

          思路

          這題真的沒啥好講的,因?yàn)轫樦}目的描述就能出答案,首先的話就是字符串開頭去空,這件事情你可以交給trim函數(shù),然后下面三種情況它也給你理出來了,照著翻譯唄。后來又補(bǔ)了句無法轉(zhuǎn)化就返回 0,然后把目光轉(zhuǎn)到注意,這里它確定了數(shù)值的最大最小值要注意下。

          代碼

          /**
          ?*?@param?{string}?s
          ?*?@return?{number}
          ?*/

          const?myAtoi?=?function?(s)?{
          ??s?=?s.trim();
          ??if?(!s?||?/[a-z]/.test(s[0]))?{
          ????return?0;
          ??}
          ??const?res?=?parseInt(s);
          ??if?(!res)?{
          ????return?0;
          ??}
          ??const?min?=?Math.pow(-2,?31);
          ??const?max?=?-min?-?1;
          ??return?res??max???max?:?res;
          };

          export?default?myAtoi;

          測試

          import?myAtoi?from?'../../code/leetcode/8';

          describe('test?function?myAtoi:?',?()?=>?{
          ??test('test?case?s?=?"42"',?()?=>?{
          ????const?res?=?myAtoi('42');
          ????expect(res).toBe(42);
          ??});

          ??test('test?case?s?=?"?-42"',?()?=>?{
          ????const?res?=?myAtoi('?-42');
          ????expect(res).toBe(-42);
          ??});

          ??test('test?case?s?=?"4193?with?words"',?()?=>?{
          ????const?res?=?myAtoi('4193?with?words');
          ????expect(res).toBe(4193);
          ??});

          ??test('test?case?s?=?"words?and?987"',?()?=>?{
          ????const?res?=?myAtoi('words?and?987');
          ????expect(res).toBe(0);
          ??});

          ??test('test?case?s?=?"-91283472332"',?()?=>?{
          ????const?res?=?myAtoi('-91283472332');
          ????expect(res).toBe(-2147483648);
          ??});
          });

          說明

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


          瀏覽 38
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

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

          手機(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>
                  日韩尤物在线播放 | 色站综合 | 热久久最新地址 | 欧美激情久久久 | 免费草逼视频 |