mirror of
https://github.com/halfrost/LeetCode-Go.git
synced 2025-07-05 00:25:22 +08:00
add leetcode_0065
This commit is contained in:
@ -3,15 +3,15 @@ package leetcode
|
||||
func isNumber(s string) bool {
|
||||
numFlag, dotFlag, eFlag := false, false, false
|
||||
|
||||
for i:=0; i<len(s); i++ {
|
||||
for i := 0; i < len(s); i++ {
|
||||
if '0' <= s[i] && s[i] <= '9' {
|
||||
numFlag = true
|
||||
} else if s[i] == '.' && !dotFlag && !eFlag {
|
||||
dotFlag = true:
|
||||
dotFlag = true
|
||||
} else if (s[i] == 'e' || s[i] == 'E') && !eFlag && numFlag {
|
||||
eFlag = true
|
||||
numFlag = false // reJudge integer after 'e' or 'E'
|
||||
} else if (s[i] == '+' || s[i] == '-') && (i == 0 || s[i-1] == 'e' || s[i-1] == 'E'){
|
||||
numFlag = false // reJudge integer after 'e' or 'E'
|
||||
} else if (s[i] == '+' || s[i] == '-') && (i == 0 || s[i-1] == 'e' || s[i-1] == 'E') {
|
||||
continue
|
||||
} else {
|
||||
return false
|
||||
@ -20,4 +20,4 @@ func isNumber(s string) bool {
|
||||
// avoid case: s == '.' or 'e/E' or '+/-' and etc...
|
||||
// string s must have num
|
||||
return numFlag
|
||||
}
|
||||
}
|
||||
|
@ -46,4 +46,4 @@ Given a string s, return true if s is a **valid number.**
|
||||
- 如果是 '.', 则需要 '.'没有出现过,并且 'e/E' 没有出现过,才会进行标记
|
||||
- 如果是 'e/E', 则需要 'e/E'没有出现过,并且前面出现过数字,才会进行标记
|
||||
- 如果是 '+/-', 则需要是第一个字符,或者前一个字符是 'e/E',才会进行标记,并重置数字出现的标识
|
||||
- 最后返回时,需要字符串中至少出现过数字,避免下列case: s == '.' or 'e/E' or '+/e' and etc...
|
||||
- 最后返回时,需要字符串中至少出现过数字,避免下列case: s == '.' or 'e/E' or '+/e' and etc...
|
||||
|
Reference in New Issue
Block a user