day-56 字符串转换整数 (atoi)
思路
利用trim()函数去掉前后空格,然后判断是否有’+‘或’-'号,如果有则去掉,然后依次向后遍历字符串,直到遇到非数字字符或遍历结束,遍历过程中用一个long型记录当前整数大小
解题过程
最后判断整数大小是否超过整型的边界即可
Code
class Solution {public int myAtoi(String s) {s=s.trim();boolean flag=true;if(s.length()>0&&s.charAt(0)=='-'){flag=false;s=s.substring(1,s.length());}else if(s.length()>0&&s.charAt(0)=='+'){s=s.substring(1,s.length());}long ans=0;int id=0;while(id<s.length()&&0<=s.charAt(id)-'0'&&s.charAt(id)-'0'<=9){ans=ans*10+s.charAt(id)-'0';if(flag&&ans>=Integer.MAX_VALUE)return Integer.MAX_VALUE;if(!flag&&-1*ans<=Integer.MIN_VALUE)return Integer.MIN_VALUE;id++;}if(flag){if(ans>=Integer.MAX_VALUE)return Integer.MAX_VALUE;else{return (int)ans;}}else{ans=-1*ans;if(ans<=Integer.MIN_VALUE)return Integer.MIN_VALUE;else return (int)ans;}}
}作者:菜卷
链接:https://leetcode.cn/problems/string-to-integer-atoi/solutions/2923358/zi-fu-chuan-zhuan-huan-zheng-shu-atoi-by-2ce7/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。