驗證給定的字串是否可以解釋為十進位制數字。
例如:"0"
=>true
" 0.1 "
=>true
"abc"
=>false
"1 a"
=>false
"2e10"
=>true
" -90e3 "
=>true
" 1e"
=>false
"e3"
=>false
" 6e-1"
=>true
" 99e2.5 "
=>false
"53.5e93"
=>true
" --6 "
=>false
"-+3"
=>false
"95a54e53"
=>false
說明: 我們有意將問題陳述地比較模糊。在實現**之前,你應當事先思考所有可能的情況。這裡給出乙份可能存在於有效十進位制數字中的字元列表:
數字 0-9
指數 - 「e」
正/負號 - 「+」/"-"
小數點 - 「.」
當然,在輸入中,這些字元的上下文也很重要。
public
class
p65_valid_number
boolean canfinish =
false
;boolean hasnum =
false
;int state =0;
for(
int i =
0;ilength()
;i++
)else
if(i==
0&&st.
charat
(i)>=
'0'&&st.
charat
(i)<=
'9')
else
if(st.
charat
(i)==
'.')
else
}//監測整數字
if(state ==1)
else
if(st.
charat
(i)==
'.')
else
if(st.
charat
(i)==
'e')
else
}//監測小數字
if(state ==2)
else
if(st.
charat
(i)==
'e')
else
}//監測指數符號位
if(state ==3)
else
if(st.
charat
(i)>=
'0'&&st.
charat
(i)<=
'9')
else
}//監測指數字
if(state ==4)
else}}
if(canfinish&&hasnum)
return
true
;else
return
false;}
}
思路:利用狀態機的思想來解決
public
class
p65_valid_number2
}
思路:直接使用正規表示式匹配 leetcode習題集 36 有效的數獨
判斷乙個9x9的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可。數字1 9在每一行只能出現一次。數字1 9在每一列只能出現一次。數字1 9在每乙個以粗實線分隔的3x3宮內只能出現一次。上圖是乙個部分填充的有效的數獨。數獨部分空格內已填入了數字,空白格用 表示。示例 1 輸入 5 3...
Leetcode習題集 鍊錶
這裡記錄一些我刷題的思路方便之後進行複習重溫,同時也方便進行新增 p141 環形鍊錶 class solution listnode reverse listnode head return pre 使用翻轉鍊錶,判斷返回的指標與傳進的指標是否相同,時間複雜度是o n 可能 空間複雜度是o 1 cl...
leetcode習題集 54 螺旋矩陣
給定乙個包含 m x n 個元素的矩陣 m 行,n 列 請按照順時針螺旋順序,返回矩陣中的所有元素。示例 1 輸入 1,2,3 4,5,6 7,8,9 輸出 1,2,3,6,9,8,7,4,5 示例 2 輸入 1,2,3,4 5,6,7,8 9,10,11,12 輸出 1,2,3,4,8,12,11...