南京网站开发就业培训课程,深圳电商网络网站,医院行业网站,wordpress 字符串转换整数
描述 :
请你来实现一个 myAtoi(string s) 函数#xff0c;使其能将字符串转换成一个 32 位有符号整数#xff08;类似 C/C 中的 atoi 函数#xff09;。
函数 myAtoi(string s) 的算法如下#xff1a;
读入字符串并丢弃无用的前导空格检查下一个字符使其能将字符串转换成一个 32 位有符号整数类似 C/C 中的 atoi 函数。
函数 myAtoi(string s) 的算法如下
读入字符串并丢弃无用的前导空格检查下一个字符假设还未到字符末尾为正还是负号读取该字符如果有。 确定最终结果是负数还是正数。 如果两者都不存在则假定结果为正。读入下一个字符直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。将前面步骤读入的这些数字转换为整数即123 - 123 0032 - 32。如果没有读入数字则整数为 0 。必要时更改符号从步骤 2 开始。如果整数数超过 32 位有符号整数范围 [−231, 231 − 1] 需要截断这个整数使其保持在这个范围内。具体来说小于 −231 的整数应该被固定为 −231 大于 231 − 1 的整数应该被固定为 231 − 1 。返回整数作为最终结果。
题目 :
LeetCode 8.字符串转换整数 :
8. 字符串转换整数 (atoi) 分析 : 这里给个好的讲解 : 【数据结构和算法】LeetCode 8. 字符串转换整数 (atoi)_哔哩哔哩_bilibili 解析 :
class Solution {public int myAtoi(String s) {if(s null || s.length() 0){return 0;}//记录结果long res 0;//下标索引int index 0;//符号 表示正负数int flag 1;//前面去除空格while(index s.length() s.charAt(index) ){index;}if(index s.length()){return 0;}if(s.charAt(index) - || s.charAt(index) ){flag s.charAt(index) ? 1 : -1;}for(;index s.length();index){int digit s.charAt(index) - 0;if(digit 0 || digit 9){break;}res res * 10 digit;//判断溢出if(res * flag Integer.MAX_VALUE){return Integer.MAX_VALUE;}if(res * flag Integer.MIN_VALUE){return Integer.MIN_VALUE;}}return (int) res * flag;}
}
这期就到这里 , 下期见!