題目:寫乙個函式strtoint,實現把字串轉換成整數這個功能。當然,不能使用atoi或者其他類似的庫函式。(1)考慮輸入的字串是否是null、空字串
(2)考慮輸入的字串是否包含正負號或者是否是只包含正負號
(3)考慮輸入的字串是否會發生上溢或下溢(正整數的最大值是0x7fffffff,最小的負整數是0x80000000)
(4)考慮如何區分正常返回數字0和返回輸入是否合法的標識
綜上考慮,實現**如下,這裡使用c#語言描述:
①定義乙個convertresult的結構體,作為返回值使用
public②定義方法主入口,在主入口中判斷輸入是否含有正負號並做對應處理struct
convertresult
public
enum
convertstate
public③定義核心方法strtointcore,將字串轉換為數字並為convertresult例項賦值,在此方法中判斷是否發生上溢或下溢static convertresult strtoint(string
str)
else
if (strarray[startindex] == '-'
)
if (startindex !=strarray.length)
}return
result;
}
privatestatic
void strtointcore(char strarray, int index, bool minus, ref
convertresult result)
index++;
}else
}if (index ==strarray.length)
}
//(1)測試用例通過情況魯棒性測試:null指標
[testmethod]
public
void
stringtointtest1()
//魯棒性測試:空字串
[testmethod]
public
void
stringtointtest2()
//功能測試:普通的數字字串
[testmethod]
public
void
stringtointtest3()
//功能測試:帶正負號的數字字串
[testmethod]
public
void
stringtointtest4()
//功能測試:帶正負號的數字字串
[testmethod]
public
void
stringtointtest5()
//功能測試:帶正負號的字串0
[testmethod]
public
void
stringtointtest6()
//功能測試:帶正負號的字串0
[testmethod]
public
void
stringtointtest7()
//特殊輸入測試:非數字字串
[testmethod]
public
void
stringtointtest8()
//特殊輸入測試:有效的最大正整數 0x7fffffff
[testmethod]
public
void
stringtointtest9()
[testmethod]
public
void
stringtointtest10()
[testmethod]
public
void
stringtointtest11()
//特殊輸入測試:有效的最小負整數 0x80000000
[testmethod]
public
void
stringtointtest12()
[testmethod]
public
void
stringtointtest13()
[testmethod]
public
void
stringtointtest14()
//特殊輸入測試:只有乙個正號
[testmethod]
public
void
stringtointtest15()
//特殊輸入測試:只有乙個負號
[testmethod]
public
void
stringtointtest16()
(2)**覆蓋率統計
出處:
劍指offer面試題35
面試題35 第乙個只出現一次的字元 題目 在字串中找出第乙個只出現一次的字元。如輸入 abaccdeff 則輸入 b 預備知識 什麼是雜湊表?思路 構造乙個簡單的基於陣列的簡單雜湊表 key 字元,value 次數 字元的ascii碼作為字元的下標,統計次數作為陣列值。演算法實現和測試 面試題35....
劍指offer面試題7
面試題7 用兩個棧實現佇列 using namespace std template class cqueue 預備知識 佇列 佇列也是一種常見的資料結構 特點是先進先出 fifo 在stl中有stack和queue兩個容器 template class stack 成員函式 empty size ...
劍指offer面試題11
面試題1 數值的整數的次方 題目 實現函式double power double base,int exponent 求base的 exponent次方。不得使用庫函式,同時不需要考慮大數問題。思路 首先應該明確指數的可能取值 正整數,0,負整數 另外還需要考慮底數是0的情形。對於負整指數,我們可以...