Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #python
- def atoi(self, str):
- str = str.strip(" ")
- if len(str) == 0:
- return 0
- s = ''
- MAX_INT = 2147483647
- MIN_INT = -2147483648
- for i in range(len(str)):
- if str[i] == "+" or str[i] == "-" or str[i].isdigit():
- s += str[i]
- else:
- break
- if len(s) == 0 or (len(s) == 1 and not s[0].isdigit()):
- return 0
- if len(s) >= 2 and not s[1].isdigit():
- return 0
- s = int(s)
- if s > MAX_INT:
- return MAX_INT
- if s < MIN_INT:
- return MIN_INT
- return s
- //java
- public class Solution {
- public int atoi(String str) {
- String s = str.trim();
- StringBuilder sb = new StringBuilder();
- for (int i = 0; i < s.length(); i++) {
- char c = s.charAt(i);
- if (Character.isDigit(s.charAt(i)) || (i == 0 && (c == '-' || c == '+'))) {
- sb.append(c);
- }
- else break;
- }
- String rs = sb.toString();
- if (rs.length() == 0 || (rs.length() == 1 && !Character.isDigit(rs.charAt(0)))) return 0;
- if (rs.charAt(0) == '-' && rs.length() > 15) return Integer.MIN_VALUE;
- if (rs.length() > 15) return Integer.MAX_VALUE;
- if (Long.parseLong(rs) >= (long) Integer.MAX_VALUE) return Integer.MAX_VALUE;
- if (Long.parseLong(rs) <= (long) Integer.MIN_VALUE) return Integer.MIN_VALUE;
- try {
- int n = Integer.parseInt(sb.toString());
- return n;
- } catch (NumberFormatException e1) {
- return 0;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement