腾讯五十题No.5 字符串转换整数
题目链接
1.去除前导空格
2.第一个字符是数字吗
3.第一个字符是'+'吗
4.第一个字符是'-'吗
5.后边的每个字符是数字吗
class Solution {
public int myAtoi(String s) {
char[] chars = s.toCharArray();
int n = chars.length;
int index = 0;
while(index<n && chars[index] == ' '){
//去掉前导空格
index++;
}
if(index == n){
//如果去掉前导空格后到末尾
return 0;
}
//是否为负
boolean negative = false;
if(chars[index] == '-'){
negative = true;
index++;
}else if(chars[index] == '+'){
index++;
}else if(!Character.isDigit(chars[index])){
return 0;
}
int ans = 0;
while(index<n && Character.isDigit(chars[index])){
//将后边连续的数字字符转换成数字
int digit = chars[index] -'0';
//判断是否越界
if(ans>(Integer.MAX_VALUE - digit)/10){
return negative?Integer.MIN_VALUE : Integer.MAX_VALUE;
}
ans = ans * 10 + digit;
index++;
}
return negative? -ans : ans;
}
}
本文来自博客园,作者:蹇爱黄,转载请注明原文链接:https://www.cnblogs.com/jianjiana/p/15863721.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?