Advertisement
Guest User

Untitled

a guest
Apr 18th, 2015
193
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.63 KB | None | 0 0
  1. #python
  2. def atoi(self, str):
  3. str = str.strip(" ")
  4. if len(str) == 0:
  5. return 0
  6. s = ''
  7. MAX_INT = 2147483647
  8. MIN_INT = -2147483648
  9. for i in range(len(str)):
  10. if str[i] == "+" or str[i] == "-" or str[i].isdigit():
  11. s += str[i]
  12. else:
  13. break
  14. if len(s) == 0 or (len(s) == 1 and not s[0].isdigit()):
  15. return 0
  16. if len(s) >= 2 and not s[1].isdigit():
  17. return 0
  18. s = int(s)
  19. if s > MAX_INT:
  20. return MAX_INT
  21. if s < MIN_INT:
  22. return MIN_INT
  23. return s
  24.  
  25. //java
  26. public class Solution {
  27. public int atoi(String str) {
  28. String s = str.trim();
  29. StringBuilder sb = new StringBuilder();
  30. for (int i = 0; i < s.length(); i++) {
  31. char c = s.charAt(i);
  32. if (Character.isDigit(s.charAt(i)) || (i == 0 && (c == '-' || c == '+'))) {
  33. sb.append(c);
  34. }
  35. else break;
  36. }
  37. String rs = sb.toString();
  38. if (rs.length() == 0 || (rs.length() == 1 && !Character.isDigit(rs.charAt(0)))) return 0;
  39. if (rs.charAt(0) == '-' && rs.length() > 15) return Integer.MIN_VALUE;
  40. if (rs.length() > 15) return Integer.MAX_VALUE;
  41. if (Long.parseLong(rs) >= (long) Integer.MAX_VALUE) return Integer.MAX_VALUE;
  42. if (Long.parseLong(rs) <= (long) Integer.MIN_VALUE) return Integer.MIN_VALUE;
  43. try {
  44. int n = Integer.parseInt(sb.toString());
  45. return n;
  46.  
  47. } catch (NumberFormatException e1) {
  48. return 0;
  49. }
  50. }
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement