### 解题思路

此处撰写解题思路

![image.png](https://pic.leetcode-cn.com/1646358397-MZNmAO-image.png)

### 代码

* java

```java
class Solution {
    public int myAtoi(String s) {
        // 去除两端空格
        s = s.trim();
        if(s.length() == 0) return 0;
        char[] carr = s.toCharArray();
        boolean hasNum = false;
        int ans = 0;
        int f = 1;
        for(char c : carr){
            if(c < '0' || c > '9'){
                // 只允许出现一次- + 
                if(!hasNum && (c == '-' || c== '+')){
                    hasNum = true;
                    if(c == '-'){
                        // 确定符号位
                        f = -1;
                    }
                    continue;
                }
                break;
            }
            int t = c - '0';
            if(f == 1){
                // 防止溢出
                if(ans > (Integer.MAX_VALUE-t)/10) return Integer.MAX_VALUE;
                ans = ans*10 + t;
                
            }else{
                // 防止溢出
                if(ans < (Integer.MIN_VALUE+t)/10) return Integer.MIN_VALUE;
                ans = ans*10 - t;
                
            }
            hasNum = true;
        }
        return ans;
    }
}
```

