Python 解法
找到字符串的最长无重复字符子串
http://www.nowcoder.com/questionTerminal/b56799ebfd684fb394bd315e89324fb4
两种解法思路差不多:
- 对数组遍历, 并使用临时数组保存遍历过的元素, 如果元素出现,则比较并保存当前的最大长度,同时临时序列保留相同元素后的无重复序列继续遍历
- 使用双指针,如果新的元素 与起止指针范围内的元素重复,就暂存当前的无重复序列长度, 并将起始指针移动到重复元素后
class Solution:
def maxLength(self , arr ):
# write code here
longest_length, cur_seq = 0, []
for i in arr:
if i in cur_seq:
longest_length = max(longest_length, len(cur_seq))
start = cur_seq.index(i)
cur_seq = cur_seq[start+1:]
cur_seq.append(i)
return max(longest_length, len(cur_seq))
# longest_length,i,j = 0, 0, 0
# arr_length = len(arr)
# while j < arr_length:
# try:
# index = arr[i:j].index(arr[j])
# longest_length = max(longest_length, j-i)
# i = index+1
# except ValueError:
# pass
# j += 1
# return max(longest_length, j-i)
查看9道真题和解析