刷LeetCode的簡易姿勢

LyleChen發表於2020-10-08

近期抽空刷了刷LeetCode,算是補補課。

由於不是很習慣直接在網頁上Coding&Debug,所以還是在本地環境下進行編碼除錯,覺得基本OK後再在網頁上提交。

主要採用Python3進行提交。方便起見,準備了一個基本的指令碼demo,用於滿足如下需求:

  • 記錄題目和自己的題解,便於回溯;

  • 進行單元測試,在提交發生錯誤後,將出錯的測試用例加入單元測試中,測試採用pytest框架;

  • 進行效能分析,由於題解一般都不長,使用line_profiler工具逐行進行分析,找到效率瓶頸,優化效能。

指令碼Demo如下:

# 要求 & 說明

class Solution:
    def do_something(self, inputs):
        return

def test_solution():
    solu = Solution()
    inputs = []
    output = []
    assert solu.do_something(inputs) == output

if __name__ == '__main__':
    from line_profiler import LineProfiler
    
    solu = Solution()
    inputs = []
    lp = LineProfiler()
    lp_wrapper = lp(solu.do_something)
    lp_wrapper(inputs)
    lp.print_stats()

相關文章