思想:
将String转换为char型数组,挨个字符进行比对,分情况处理:(用existNumber标记当前是否已出现过数字或有意义的正负号)
1. ' '
(1)当前未出现过数字时(existNumber为false):跳过继续处理
(2)出现在数字后(existNumber为true):结束符,返回判断越界后的结果
2. '0'-'9'
存入字符串result,existNumber设为true。
3. '-'/'+' (情况最多)
(1)当前未出现过数字时(existNumber为false):
判断字符串下一位是否为数字,若是则为有意义的正负号,存入result;
反之则为无意义字符,按题目要求返回0
(2)出现在数字后(existNumber为true):结束符,返回判断越界后的结果
4. 其他字符
(1)当前未出现过数字时(existNumber为false):无意义字符,按题目要求返回0
(2)出现在数字后(existNumber为true):结束符,返回判断越界后的结果
判断越界单独写成了一个函数,使用和上一题一样的方法,对字符串大小进行判断。(字符串比较长度要一致,不然不能体现出对应整数的大小)
遇到的问题:
1. ""和" "的处理
2. 因为输入为字符串类型,要注意 '0000000123' 等0开头的情况
3. 不能直接使用正数*(-1)作为负数,要考虑2147483648的情况对于正数是越界的,而-2147483648却不越界
4. '+' 虽然没有意义但也不能忘记处理
PS: 同样的Submission,第一回可以70%+,第二回就30%了,越提交多次越慢......