简洁优雅 pythonic 的代码风格和更容易阅读的代码风格你更倾向哪一种?

loliordie:这个起因非常神奇, 是我跟另一位 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 的代码比较难懂, 反而觉得我的烂代码比较适合在工作中使用, 因为一眼就能看明白不会浪费时间.

感觉有点迷茫在工作中应该使用什么样的代码风格了...

LeetCode题解234. 回文链表

请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/palindrome-linked-…

while(rs.next())不返回所有记录,而仅返回最后一个 - java

就我而言,我正在使用PreparedStatement从数据库中选择记录:所选的行数正确,但仅显示最后一行。我的代码:while (rs.next()) { DetailCaisse detailCaisse = new DetailCaisse(); devise.setLibSiglDev(rs.getString("LIB_DEV_DEV&#…

备案期间域名能解析境外吗

zok2002:备案期间域名能解析境外吗,境内不解析

不严谨研究,头戴式耳机白发带

revalue:头戴式耳机。最近发现平时戴“头带”的地方,白头发特别多。本人白头发不是平均分布的,就是主要分布在耳机“头带”的地方,尤其是头顶。在公司研究了一圈,玩耳机的、不玩耳机的。发现玩耳机的这一区域白头发特别猛。有没有哪位水友一起研究一下

有何行业应用符合以下特征?

xiaoyazi: