[LeetCode] 8. String to Integer (atoi)

妖精的绣舞 提交于 2019-12-01 06:19:12

这题考察的是字符串转数字。需要注意的几个点是

1. 去掉字符串里面,前后所有的空格。例子,"     111 23 4 4   "需要处理成"1112344",跳过所有的空格。

2. 先判断第一个char是不是一个正负号,若是负号记得最后乘以-1。

3. 判断每个char是不是介于0-9之间,若不是,立马退出循环。若是,就正常计算。

 1 /**
 2  * @param {string} str
 3  * @return {number}
 4  */
 5 var myAtoi = function(str) {
 6     let i = 0;
 7     let sign = 1;
 8     let res = 0;
 9     while (str.charAt(i) == ' ') {
10         i++;
11     }
12     if (str.charAt(i) === '+') {
13         i++;
14     } else if (str.charAt(i) === '-') {
15         sign = -1;
16         i++;
17     }
18 
19     while (str.charAt(i) >= '0' && str.charAt(i) <= '9') {
20         res = res * 10 + (str.charAt(i) - 0);
21         if (res * sign >= 2147483647) {
22             return 2147483647;
23         } else if (res * sign <= -2147483648) {
24             return -2147483648;
25         }
26         i++;
27     }
28     return res * sign;
29 };

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!