2011-10-30 3 views
0

목록에서 가장 긴 양의 숫자 시퀀스를 반환해야합니다.목록에서 연속적인 양수 시퀀스 반환

def longestSequencePos(nums): 
    longest_sequence = [] 
    current_sequence = [] 

    for obj in nums: 
     if current_sequence and current_sequence[-1]+1 == obj: 
      current_sequence.append(obj) 
     else: 
      current_sequence = [obj] 
     if len(current_sequence) > len(longest_sequence): 
      longest_sequence = current_sequence 
    return sum(1 for obj in longest_sequence if obj > 0) 

이 만, 결과적으로 표시 양수의 총 수를 반환하도록 시퀀스 5, 8, 12 어떤 도움을 주시면 감사하겠습니다 같은 경우 작동하지 않습니다 : 는 현재 내가있다.

답변

1

는 :

def find_longest_sequence(source_list): 
    longest_sequence = [] 
    current_sequence = [] 

    for obj in source_list: 
      if current_sequence and current_sequence[-1]+1 == obj: 
       current_sequence.append(obj) 
      else: 
       current_sequence = [obj] 
      if len(current_sequence) > len(longest_sequence): 
       longest_sequence = current_sequence 
    return longest_sequence 
print "Longest sequence:", find_longest_sequence([1,5,6,7,3,4,1,2,3,4,5,5,6,7]) 
+0

사실, 내가 할 일은 순서로 정수의 수를 반환합니다. 시퀀스 자체가 아닙니다. – user1021170

관련 문제