大きな問題は、主な考慮事項いくつかの側面は難しいことではありません。
1.符号ビットは、一度だけ発生することができ、唯一のデジタルの前に現れます
2.小数点は、1度だけ表示することができ、それは数字の最後に表示されなければなりません
3.インデックスeまたはEの後、デジタルまたはデジタル前に発生する可能性があります
4.必要条件が呼び出されるデジタル(Eカウントがカウントせず、Eは、被写体に応じて設定することができ、この時間が想定されていない)番号を含める必要があります
1 クラスソリューション{ 2 公共: 3 BOOL ISNUMERIC(チャー *のSTR) 。4 { 5 IF(STR == NULL || STR [ 0 ] == ' \ 0 ' ) 。6 リターン falseに、 図7 INT SIG = 0 ; // 分析シンボルのビット数 8。 int型 NUM = 0 ; // 桁数 。9 int型ポイント= 0 ; // 進数 10 11 @最初のスペースを解析、空間スキップ 12は 、一方(* STR == ' ' ) 13である STR ++ ; 14 15 //するシンボルを決定するビット 16を 一方(* STR == ' + ' || * STR == ' - ' ) 17 { 18であります ++ SIG ; 19 STR ++ ; 20である IF(SIG> 1 ) 21は、 { 22れる 戻り falseに、 23である } 24 } 25 // 桁数が決定される 26である 27 ながら(* STR> = ' 0 ' && * STR <= ' 9 ' ) 28 { 29 NUM ++ ; 30 STR ++ ; 31である } 32 ながら(* STR == ' ')/ / 私が書いたもの、奇妙な結果は、テストケースをクリアすることができないことを、以下を参照してください 33 // しばらく(NUM && * strの==を「」) 34 // デジタルを持っている必要があり、小数点の前にデジタル化されて、それは非常に単純な真実ではありませんそれ35 { 36 ポイント++ 。 37 STR ++ ; 38 であれば(SIG> 1 ) 39 { 40 リターン 偽。 41 } 42 } 43 しばらく(* STR> = ' 0 ' && * STR <= ' 9 ' ) 44 { 45 NUM ++ 。 46 STR ++ ; 47 } 48 であれば(* STR == ' E ' || * STR == ' E' ) 49 { 50 STR ++ 。 51 { 52 自体= 0 。 53 一方(* STR == ' + ' || * STR == ' - ' ) 54 { 55 自体++ 。 56 STR ++ ; 57 IF(AT> 1 ) 58 { 59 リターン 偽。 60 } 61 } 62 // 番号決意番号 63である NUM = 0 ; 64 ながら(* STR> = ' 0 ' && * STR <= ' 9 ' ) 65 { 66 NUM ++ ; 67 STR ++ ; 68 } 69 IF(NUM = = 0)// 後電子デジタルなければならない 70 リターン falseに、 71である IF(STR == *' \ 0 ' ) 72 リターン trueに、 73は 他の 74 { 75 リターン falseに; 76 } 77 } 78 } 79 他 80 IF(STR * == ' \ 0 ' && NUM)//デジタル番号を含める必要があります 81 リターン trueに; 82 他の 83 { 84 リターン falseに、 85 } 86 87 } 88 89 }。
テストケースは、ある「-.123」のサンプル出力が真であることが判明しましたか?
それはない、小数点の前に右の数字、あなたはどのように考えるか最終的には牛の旅客ネットワークは、できることですか?