65有効な番号Leetcode

アイテムの詳細を議論

最初に観察し、同様に含めることができプロンプトへの回答でタイトル文字の例--valid

見つかりました:

「+ - 」冒頭またはEに続いてのいずれか、これらのみ二つの位置

前と後の「E」は、番号を持っており、電子の前に現れてはいけません

「」、eまたはないの前に現れました。 『』

 

だから我々はいくつかのフラグを使用することができます

seenNum前にデジタル表現がありました

EはseenNumAfterE後にデジタルを表し、

ドットはあまりにも前の様子を表しています。「」

Eがe前に発生した表し

 

、真seenNumAfterE =の初期設定に注意してください必ずしも電子秒を含まないので、eは再びfalseにそれのように表示されます。他のフラグはfalseに設定されています

最後に、seenNum && seenNumAfterEを返します

 

1  クラスソリューション{
 2      公共 ブールISNUMBER(文字列S){
 3          ブール seenNum = 、seenNumAfterE = 4          ブールドット= 、E = 5          S = s.trim()。// 去掉首尾的空格
6          int型のカウント= 0 ;
7          のためのchar型{:s.toCharArray()i)が
 8              であれば(I> = '0' && iは= < '9' ){
 9                  seenNum = 10                 seenNumAfterE = ;
11              } そう なら(I == '' ){
 12                  であれば(E || ドット)
 13                      リターン 14                  ドット= 15              } それ以外 の場合(I == 'E' ){
 16                  であれば(E ||!seenNum)
 17                      リターン はfalse ;
18                  seenNumAfterE = 19                  E = ;
20             } そう なら(I == '+' || I == ' - ' ){
 21                  場合(カウント= 0 && s.charAt(カウント- 1)= 'E'! 22                      リターン 23              } それ以外の
24                  の復帰 はfalse ;
25              
26              数++ ;
27          }
 28          
29          リターン seenNum && seenNumAfterE。
30      }
 31 }

 

おすすめ

転載: www.cnblogs.com/hwd9654/p/10987558.html