LeetCode Python题解模板疑问:是否必须采用OOP格式?
关于LeetCode Python题解中
class Solution:格式的说明 1. 该格式是必须遵守的
LeetCode的判题系统有固定调用逻辑:它会自动实例化Solution类,然后调用题目指定的方法(比如lengthOfLastWord、plusOne)来执行你的代码并验证结果。如果不按这个格式编写,判题系统找不到对应的方法入口,会直接报错。
判题系统的调用逻辑大致如下:
# 判题系统内部执行逻辑 test_input = "Hello World" sol_instance = Solution() your_result = sol_instance.lengthOfLastWord(test_input) # 对比your_result与标准答案
2. 可自由编写核心逻辑,并非强制OOP
这个格式只是入口要求,不代表必须用复杂的面向对象写法。你完全可以在方法内部用最朴素的逻辑实现,甚至可以在类外部定义辅助函数,只要在指定方法里调用即可。
举两个合法的写法示例:
# 写法1:直接在方法内实现逻辑 class Solution: def lengthOfLastWord(self, s: str) -> int: return len(s.strip().split()[-1]) if s.strip() else 0
# 写法2:外部定义辅助函数,方法内调用 def get_last_word_length(s): stripped_s = s.strip() if not stripped_s: return 0 return len(stripped_s.split()[-1]) class Solution: def lengthOfLastWord(self, s: str) -> int: return get_last_word_length(s)
3. 该格式无隐含算法提示
class Solution:只是LeetCode为统一判题流程设计的标准化模板,和解题思路、算法选择没有任何关联。不管你用贪心、动态规划还是暴力解法,只要方法能正确返回结果即可,不需要遵循OOP的复杂设计原则。
内容的提问来源于stack exchange,提问作者Daniel
相关产品推荐
相关产品推荐

