一、题目内容

image.png

二、题解

解法1:

思路

模拟

代码

  1. public class Solution {
  2. /**
  3. *
  4. * @param str string字符串
  5. * @return int整型
  6. */
  7. public int atoi (String str) {
  8. // write code here
  9. if(str == null || str.isEmpty()){
  10. return 0;
  11. }
  12. str = str.trim();
  13. int sign = 1;
  14. int firstIndex = 0;
  15. int lastIndex = 0;
  16. char[] array = str.toCharArray();
  17. if(array[0] == '+'){
  18. firstIndex = 1;
  19. }else if(array[0] == '-'){
  20. firstIndex = 1;
  21. sign = -1;
  22. }
  23. for(int i = firstIndex;i<array.length;i++){
  24. if(array[i] == 'e'){
  25. break;
  26. }
  27. int curr = array[i] - '0';
  28. if(curr<0||curr>9){
  29. break;
  30. }
  31. lastIndex = i;
  32. }
  33. long c = 10;
  34. long res = array[lastIndex]-'0';
  35. for(int i = lastIndex-1;i>=firstIndex;i--){
  36. res+=(array[i]-'0')*c;
  37. c*=10;
  38. }
  39. res*=sign;
  40. if(res>Integer.MAX_VALUE){
  41. return Integer.MAX_VALUE;
  42. }else if(res<Integer.MIN_VALUE){
  43. return Integer.MIN_VALUE;
  44. }
  45. return (int)res;
  46. }
  47. }