擅长:python、mysql、java
<p><code>n</code>是示例中的元素,而不是索引。如果某个元素等于其索引值为负1的元素,则作为伪代码的程序将替换该元素。你知道吗</p>
<p>让您的问题更明确(机器人友好):您希望从<code>1</code>迭代到列表的长度,如果当前元素等于前一个元素,则将其替换为零。你知道吗</p>
<p>现在让我们把英语翻译成Python(我们用<code>i</code>表示索引):</p>
<pre><code>def zeroDuplicates (nums):
for i in range(1, len(nums)):
if nums[i] == nums[i-1]:
nums[i] = 0
return nums
</code></pre>
<hr/>
<p>好处:您可以使用列表理解和压缩来“pythonize”它:</p>
<pre><code>def zeroDuplicates (nums):
return [nums[0]] + [(0 if a == b else a) for a, b in zip(nums[1:], nums[:-1])]
</code></pre>
<p>(对于每个元素及其后续元素,如果它们等于,则后续元素等于0,否则将保持不变)。你知道吗</p>