525. Contiguous Array
参考了http://blog.csdn.net/wudidi8800/article/details/60802772 的方法
AC代码:
class Solution(object):
def findMaxLength(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
if len(nums) <=1:
return 0
for i in range(len(nums)):
if nums[i] == 0:
nums[i] = -1
sum_dict = {0:-1}
sum = 0
ans = 0
for i in range(len(nums)):
sum += nums[i]
if sum in sum_dict:
ans = max(ans,i-sum_dict[sum])
else:
sum_dict[sum] = i
return ans
解题思路:
把所有0换为-1,计算0到i所有数字的加和,如果出现加和相同的情况,如0-k与0-i的和相同,说明k+1-i之间的0,1个数相等。利用字典,找出最长的子串即可。
法二:利用正则表达式
import re
result = re.sub(r'\s+', " ", s)
转载请注明原文地址: https://ju.6miu.com/read-12977.html