原題是為了識別數字,實現如下:
#include
#include
#include
using
namespace std;
class
solution
bool
isnumberic
(const
char
* str)
}int positionofe =-1
;// int positionofpoint = -1;
int numofpoint =
count
(tmpstr.
begin()
, tmpstr.
end(
), point)
;//小數點數量
int numofp =
count
(tmpstr.
begin()
, tmpstr.
end(
), sciencecountp)
;//e數量
int numofn =
count
(tmpstr.
begin()
, tmpstr.
end(
), sciencecountn)
;//e數量
//int numberofsign = count(tmpstr.begin(), tmpstr.end(), positive) + count(tmpstr.begin(), tmpstr.end(), negtive);
if(numofpoint >1)
return
false
;//小數點多餘1,非法;
if(numofn+numofp >1)
return
false
;//科學計數多餘1,非法。這裡將12e(12e12)這種套娃式表達視為無效;
//以科學計數法為界分割字串,兩個子串中不可再有字元。if(
(string::npos !=
( positionofe = tmpstr.
find
(sciencecountp)))\
||(string::npos !=
(positionofe = tmpstr.
find
(sciencecountn)))
)if(string::npos != substr1.
find
(point)
)return
false
;//科學表示法的指數字置不能有小數點
//任乙個子串中正負號數量不可大於1;if(
(1<
(count
(substr0.
begin()
, substr0.
end(
), positive)
+count
(substr0.
begin()
, substr0.
end(
), negtive)))
||(1<
(count
(substr1.
begin()
, substr1.
end(
), positive)
+count
(substr1.
begin()
, substr1.
end(
), negtive)))
)//若存在正負號,則符號必須在子串的首部;if(
(string::npos != substr0.
find
(positive))&&
(0!= substr0.
find
(positive)))
return
false;if
((string::npos != substr1.
find
(positive))&&
(0!= substr1.
find
(positive)))
return
false;if
((string::npos != substr0.
find
(negtive))&&
(0!= substr0.
find
(negtive)))
return
false;if
((string::npos != substr1.
find
(negtive))&&
(0!= substr1.
find
(negtive)))
return
false;}
else
return
true;}
};class
stop_watch
~stop_watch()
public
:void
start()
void
stop()
void
restart()
double
elapsed()
double
elapsed_ms()
double
elapsed_second()
private
: large_integer freq_;
large_integer begin_time_;
long
long elapsed_;};
intmain()
說明:這個**塊分成了多個部分,solution部分是原題答案。為了驗證其執行時間,網上找了乙個輪子精確記錄時間,基於windows庫(輪子的作者找不到了,有人看到請告知我一下)。
邏輯很簡單,就是排除所有特殊字元,數特定字元的個數;沒有異常再從e或e的位置切分字元,檢查 . + - e e 的位置是否正確。
最後,這一答案檢查題目所給的字元正確。
牛客網上的答案都是純c實現的,那不是我想要的答案。
牛客網 字串價值
熱度指數 7時間限制 1秒空間限制 32768k 有一種有趣的字串價值計算方式 統計字串中每種字元出現的次數,然後求所有字元次數的平方和作為字串的價值 例如 字串 abacaba 裡面包括4個 a 2個 b 1個 c 於是這個字串的價值為4 4 2 2 1 1 21 牛牛有乙個字串s,並且允許你從s...
牛客網 倒置字串
題目描述 將一句話的單詞進行倒置,標點不倒置。比如 i like beijing.經過函式後變為 beijing.like i 這道題我想到兩種方法 1 從後往前遍歷字串,以空格分割,找到每個單詞,然後再遍歷每個單詞,將單詞逐個鏈到新字串上,注意需要將第乙個單詞單獨處理,具體 如下 include ...
牛客網 倒置字串
將一句話的單詞進行倒置,標點不倒置。比如 i like beijing.經過函式後變為 beijing.like i 輸入描述 每個測試輸入包含1個測試用例 i like beijing.輸入用例長度不超過100 輸出描述 依次輸出倒置之後的字串,以空格分割 示例輸入 i like beijing....