
Leetcode Day3
发布日期:2021-05-04 19:51:11
浏览次数:22
分类:原创文章
本文共 2823 字,大约阅读时间需要 9 分钟。
Leetcode Day3
leetcode -7 整數反轉
- 題目描述
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−2^31, 2^31 − 1] ,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。
- 解 :
/** * @param {number} x * @return {number} */let reverse = function(x) { if(x == 0) return 0; let s = x.toString(); let res = ""; let flag = true; for(let i=s.length-1; i>=0; i--) { if(s.charAt(i) == 0 && flag) continue; else { flag = false; res += s.charAt(i); } } let ans = parseInt(res); if(ans > Math.pow(2, 31)-1 || -ans < -Math.pow(2, 31)) return 0; if(x < 0) return -ans; return ans;}
leetcode -8 字符串轉換整數
- 題目描述
请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。
函数 myAtoi(string s) 的算法如下:
- 读入字符串并丢弃无用的前导空格
- 检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。
- 读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。
- 将前面步骤读入的这些数字转换为整数(即,“123” -> 123, “0032” -> 32)。如果没有读入数字,则整数为 0 。必要时更改符号(从步骤 2 开始)。
- 如果整数数超过 32 位有符号整数范围 [−2^31, 2^31 − 1] ,需要截断这个整数,使其保持在这个范围内。具体来说,小于 −2^31 的整数应该被固定为 −2^31 ,大于 2^31 − 1 的整数应该被固定为 2^31 − 1 。
- 返回整数作为最终结果。
注意:
本题中的空白字符只包括空格字符 ’ ’ 。
除前导空格或数字后的其余字符串外,请勿忽略 任何其他字符。
- 解 :
/** * @param {string} s * @return {number} */let myAtoi = function(s) { let positive = true; let res = 0; let arr = []; let findFirstValid = function(str) { for(let i=0; i<str.length; i++) { if(str.charAt(i) == ' ') continue; else return i; } } let findFirstNumber = function(str) { for(let i=0; i<str.length; i++) { if(48 <= str.charAt(i).charCodeAt() && str.charAt(i).charCodeAt() <= 57) return i; } } let firstNumber = findFirstNumber(s); if(s.charAt(firstNumber-1) == '-') positive = false; let start = findFirstValid(s); for(let i=start; i<s.length; i++) { if(48 <= s.charAt(i).charCodeAt() && s.charAt(i).charCodeAt() <= 57) { arr.push(parseInt(s.charAt(i))); } else if((s.charAt(i) == '-' && s.charAt(i+1) == '+') || (s.charAt(i) == '+' && s.charAt(i+1) == '-') || (s.charAt(i) == '-' && s.charAt(i+1) == '-') || (s.charAt(i) == '+' && s.charAt(i+1) == '+') && i<firstNumber) { break; } else if((s.charAt(i) == '-' || s.charAt(i) == '+') && i<firstNumber) { continue; } else { break; } } if(arr == []) return 0; for(let i=0; i<arr.length; i++) { res += Math.pow(10, arr.length-1-i)*arr[i]; } if(!positive) res = -res; if(res > Math.pow(2, 31)-1 || res < Math.pow(-2, 31)) { if(positive) return Math.pow(2, 31)-1; else return Math.pow(-2, 31); } return res;}
发表评论
最新留言
表示我来过!
[***.240.166.169]2025年04月01日 23时41分08秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
vue:项目开发的记录与优化
2019-03-04
Node:模块
2019-03-04
vue(8):组件入门:组件之间的传参
2019-03-04
$set的使用(视图不能实时更新)
2019-03-04
vue ref的基本使用
2019-03-04
Spring知识小汇(6)——Bean的自动装配
2019-03-04
element——弹窗
2019-03-04
在vue项目中使用qrcodesjs2生成二维码
2019-03-04
在vue中实现中国地图
2019-03-04
JVM学习————运行时数据区(三)
2019-03-04
一、硬件防火墙
2019-03-04
MySQL 安装报找不到MSVCR120.dll错误
2019-03-04
Javaweb jQuery功能练习
2019-03-04
余生,愿你能靠近那些正能量的人——
2019-03-04
初学QT
2019-03-04
MATLAB在线编辑网站及使用教程
2019-03-04
IOC容器_Bean管理xml方式
2019-03-04
python+Aritest自动化—02—app_util.py—app驱动
2019-03-04
Typora的基础用法
2019-03-04
蓝桥杯入门练习题斐波那契数列
2019-03-04