アイテムの詳細を議論
最初に観察し、同様に含めることができプロンプトへの回答でタイトル文字の例--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 }