2011-10-30 28 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

在Python中你可以:

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