Problem
# Follow up for "Remove Duplicates":
# What if duplicates are allowed at most twice?
#
# For example,
# Given sorted array nums = [1,1,1,2,2,3],
#
# Your function should return length = 5,
# with the first five elements of nums being 1, 1, 2, 2 and 3.
# It doesn't matter what you leave beyond the new length.
leetcode: 26. Remove Duplicates from Sorted Array
AC
class Solution():
def removeDuplicates(self, x):
if len(x) < 2:
return len(x)
cur = 2
for _ in range(2, len(x)):
if x[cur] == x[cur-2]:
del x[cur]
else:
cur += 1
return cur
if __name__ == "__main__":
assert Solution().removeDuplicates([1, 1, 1, 2, 2, 3]) == 5