Skip to content

Commit 8f88eb8

Browse files
committed
docs: fix typo in README file
1 parent 56a38da commit 8f88eb8

File tree

2 files changed

+94
-1
lines changed

2 files changed

+94
-1
lines changed

solution/0007.Reverse Integer/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
### 解法
2929
- 解法1
3030

31-
用 long 型存储该整数,取绝对值,然后转成 StringBuilder 进行 reverse,后转回 int。注意判断该数是否在[Integer.MIN_VALUE, Intger.MAX_VALUE] 范围内。
31+
用 long 型存储该整数,取绝对值,然后转成 StringBuilder 进行 reverse,后转回 int。注意判断该数是否在 `[Integer.MIN_VALUE, Integer.MAX_VALUE]` 范围内。
3232

3333
```java
3434
class Solution {
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
## 8. 字符串转换整数 (atoi)
2+
### 题目描述
3+
请你来实现一个 `atoi` 函数,使其能将字符串转换成整数。
4+
5+
首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。
6+
7+
当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。
8+
9+
该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符可以被忽略,它们对于函数不应该造成影响。
10+
11+
注意:假如该字符串中的第一个非空格字符不是一个有效整数字符、字符串为空或字符串仅包含空白字符时,则你的函数不需要进行转换。
12+
13+
在任何情况下,若函数不能进行有效的转换时,请返回 0。
14+
15+
**说明:**
16+
17+
假设我们的环境只能存储 32 位大小的有符号整数,那么其数值范围为 `[−231,  231 − 1]`。如果数值超过这个范围,请返回  `INT_MAX (2^31 − 1)` 或 `INT_MIN (−2^31)`
18+
19+
**示例 1:**
20+
21+
```
22+
输入: "42"
23+
输出: 42
24+
```
25+
26+
**示例 2:**
27+
28+
```
29+
输入: " -42"
30+
输出: -42
31+
解释: 第一个非空白字符为 '-', 它是一个负号。
32+
  我们尽可能将负号与后面所有连续出现的数字组合起来,最后得到 -42 。
33+
```
34+
35+
**示例 3:**
36+
37+
```
38+
输入: "4193 with words"
39+
输出: 4193
40+
解释: 转换截止于数字 '3' ,因为它的下一个字符不为数字。
41+
```
42+
43+
**示例 4:**
44+
45+
```
46+
输入: "words and 987"
47+
输出: 0
48+
解释: 第一个非空字符是 'w', 但它不是数字或正、负号。
49+
因此无法执行有效的转换。
50+
```
51+
52+
**示例 5:**
53+
54+
```
55+
输入: "-91283472332"
56+
输出: -2147483648
57+
解释: 数字 "-91283472332" 超过 32 位有符号整数范围。
58+
  因此返回 INT_MIN (−231) 。
59+
```
60+
61+
### 解法
62+
```java
63+
class Solution {
64+
public int myAtoi(String str) {
65+
int len = str.length();
66+
if (len == 0) return 0;
67+
char[] cs = str.toCharArray();
68+
int i = 0;
69+
while (i < len && cs[i] == ' ') i++;
70+
if (i==len) return 0;
71+
char c1 = cs[i];
72+
int sig = 1;
73+
if ((c1 > '9' || c1 < '0')) {
74+
if (c1 == '-') {
75+
sig = -1;
76+
i++;
77+
} else if (c1 == '+') {
78+
i++;
79+
} else return 0;
80+
}
81+
long v = 0,sv = 0;
82+
for (; i < len; i++) {
83+
char c = cs[i];
84+
if (c < '0' || c > '9') break;
85+
v = v * 10 + (c - '0');
86+
sv = v * sig;
87+
if (sv > Integer.MAX_VALUE) return Integer.MAX_VALUE;
88+
else if (sv < Integer.MIN_VALUE) return Integer.MIN_VALUE;
89+
}
90+
return (int) sv;
91+
}
92+
}
93+
```

0 commit comments

Comments
 (0)