简洁优雅 pythonic 的代码风格和更容易阅读的代码风格你更倾向哪一种?
这个起因非常神奇, 是我跟另一位 dalao 刷 LC 一道 EASY 题时产生的讨论.
题目 LC. 234 的 O(1)空间复杂度解法, 由于是三刷我们的思路完全一致, 都是利用回文对称性寻找中间点的同时将前半部分指向关系翻转后进行比较, 但代码风格的不同却造成了别人阅读代码的不同反应.
这是大佬的解答部分代码, 非常 pythonic, 可以看出使用了好几个骚操作来压缩代码.
fast, slow, pre = head, head, None while fast and fast.next: fast = fast.next.next pre, slow.next, slow = slow, pre, slow.next slow = slow.next if fast else slow while slow and slow.val == pre.val: pre, slow = pre.next, slow.next return not pre
这是我的烂代码
fast = head slow = head pre = None while fast and fast.next: fast = fast.next.next temp = slow slow = slow.next temp.next = pre pre = temp if fast: slow = slow.next while slow and slow.val == pre.val: pre = pre.next slow = slow.next if not pre: return True else: return False
核心逻辑完全一致, 但是在给一起刷题的一个大三实习生看时, 对方表示 dalao 的代码比较难懂, 反而觉得我的烂代码比较适合在工作中使用, 因为一眼就能看明白不会浪费时间.
感觉有点迷茫在工作中应该使用什么样的代码风格了…