42の勝利のオファーシリーズ:文字列値

大きな問題は、主な考慮事項いくつかの側面は難しいことではありません。

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」のサンプル出力が真であることが判明しましたか?

それはない、小数点の前に右の数字、あなたはどのように考えるか最終的には牛の旅客ネットワークは、できることですか?

おすすめ

転載: www.cnblogs.com/neverland0718/p/11242332.html