如何验证c++代码线程安全性_Python3基础:如何验证你的代码
0
自己編寫測試用例
在寫完每一份代碼的同時,我一般都在代碼的后面順便寫一些簡單的測試用例。這些測試用例一般都比較簡單,以簡單地驗證代碼是否可運行,而且至少保證對這些測試用例,運行結果是正確的。這些測試用例僅用于協助我完成代碼的編寫和調試,并不保證對各種情況的全面覆蓋。我將會在一下節介紹如何完全驗證我們的代碼是否正確。
以《第1期 單調數組》為例,大家在文章中看到的代碼是這樣的:
def cmp(a, b):if a < b: return -1if a == b: return 0return 1def monotonic(array):size = len(array)# 記錄單調方向,-1為遞減,1為遞增global_dir = Nonefor i in range(size - 1):cur_dir = cmp(array[i], array[i + 1])if cur_dir == 0:# 如果兩個相鄰的數相等,則忽略continueelif global_dir is None:# 第一次不相等的兩個數的單調方向,就是整個數組期望的單調方向global_dir = cur_direlif global_dir != cur_dir:# 出現與期望的單調方向不同的情況,則該數組不單調return Falsereturn True實際上,我會在后面加上測試用例。所以在我自己看到的版本是這樣的:
def cmp(a, b):if a < b: return -1if a == b: return 0return 1def monotonic(array):size = len(array)# 記錄單調方向,-1為遞減,1為遞增global_dir = Nonefor i in range(size - 1):cur_dir = cmp(array[i], array[i + 1])if cur_dir == 0:# 如果兩個相鄰的數相等,則忽略continueelif global_dir is None:# 第一次不相等的兩個數的單調方向,就是整個數組期望的單調方向global_dir = cur_direlif global_dir != cur_dir:# 出現與期望的單調方向不同的情況,則該數組不單調return Falsereturn Trueif __name__ == "__main__":print(monotonic([1, 2, 3])) # Trueprint(monotonic([6, 5, 4, 4])) # Trueprint(monotonic([4, 5, 7, 6, 6])) # False1
OJ(在線判題)
OJ就是Online Judge,即在線判題。一般OJ網站都是一個大型算法題庫。計算機專業的人,應該很熟悉“A題”這個詞,主要就是指在線做算法題目。之所以叫A題,可能跟ACM計算機相關的比賽有關系。我畢業快十年了,不知道新時代的大學生們還用不用“A題”這個詞。
大部分情況下,至少到目前為止,本課題每期文章的題目基本上在各OJ上都可以找到。這些網站提供了代碼編輯、提交驗證、社區、題解等多種功能。你可以在這些網站上面提交自己的代碼,并驗證代碼的正確性;也可以查看其它人的解題思路,以幫助自己更好地理解題目,更高質量地完成自己的代碼。一般情況下,我建議你看官方的題解,這些題解會有比較深入的講解和比較高質量的實現。
互聯網上有大量的OJ網站,以下是一些比較有名的在線算法題庫網站:
- 力扣
- POJ 北大題庫
- PTA PTA其實就是以前的ZOJ,即浙大題庫
- ??途W
- hihoCoder 據說此網站出于POJ的團隊之手
我們讀大學的時候,基本上都是在POJ上A題;另外,ZOJ也是我們比較常去的。但近來,力扣貌似比較炙手可熱。我本人也比較喜歡在加扣上找題目,以作為本題目的內容;所以我比較推薦大家上加扣A題,或者測試本課題的題目。
微信掃碼關注我哦
總結
以上是生活随笔為你收集整理的如何验证c++代码线程安全性_Python3基础:如何验证你的代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: lopa分析_【风险分析方法】HAZOP
- 下一篇: 滚动的组件_我们成功的一个组件 KRW滚