leetcode 8. String to Integer (atoi)
也许是我没有理解清楚题意,为什么输入+-2的时候要输出0,而不是输出2呢。
public class Solution { public int myAtoi(String str) { if(str == null || str.length() < 1) return 0; boolean flag = false; String res = ""; int i = 0; while(str.charAt(i) == ' '&& i < str.length()) i++; if(str.charAt(i) == '-') { flag = true; i++; } else if(str.charAt(i) == '+') i++; int num = 0; while(i < str.length() && str.charAt(i) >= '0' && str.charAt(i) <= '9') { if(Integer.MAX_VALUE/10 < num || (Integer.MAX_VALUE/10 == num && Integer.MAX_VALUE%10 <(str.charAt(i)-'0')))//比较当前num的值,如果当前num的值等于
//Integer.MAX_VALUE/10,则判断即将添加的一位和最大值的最后一位比较,如果大于,则输出最大值最小值即可
return flag == true ? Integer.MIN_VALUE : Integer.MAX_VALUE; num = num*10+(str.charAt(i) -'0'); i++; } if(flag) return -num; else return num; } }
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步