2017-08-12 11 views
-3

Une liste d'entiers est dite vallée si elle consiste en une séquence de valeurs strictement décroissantes suivie d'une suite de valeurs strictement croissantes. Les séquences décroissantes et croissantes doivent avoir une longueur d'au moins 2. La dernière valeur de la séquence décroissante est la première valeur de la séquence croissante.Fonction python pour vallée avec ascendant descendant

+0

Et que voulez-vous exactement? Est-ce un devoir? – usamec

Répondre

0
def valley(list): 
    if(len(list)==0): 
    return(True) 
    if(len(list)==1): 
    return(False) 
    if(list[0]<list[1]): 
    return(False) 
    for i in range(0,len(list)-1): 
    if(list[i]<list[i+1]): 
     pos=i 
     break 
    if(list[i]==list[i+1]): 
     return(False) 
    else: 
    return(False) 
    for i in range(pos,len(list)-1): 
    if(list[i]>=list[i+1]): 
     return(False) 
    return(True) 
0
def valley(l): 
if len(l) < 4: 
    return False 
else: 
    for i in range(0,l.index(min(l))): 
     if l[i] > l[i+1]: 
      i+=1 
     else: return False 

    for j in range(l.index(min(l)),len(l)-1): 
     if l[j] < l[j+1]: 
      j+=1 
     else: return False 

    if i==l.index(min(l)) and j==len(l)-1: 
     return True 
    else: return False 
0
def valley(list): 
if (len(list) < 3): 
    return False 
ucount = 1 
lcount = 1 
for i in range(0, len(list) - 1): 
    if list[i] > list[i + 1]: 
     if lcount > 1: 
      return False 
     ucount = ucount + 1 
    if list[i] < list[i + 1]: 
     lcount = lcount + 1 
    if list[i] == list[i + 1]: 
     return False 
if ucount >1 and lcount > 1: 
    return True 
else: 
    return False 

Eh bien, ce code fonctionne pour moi.

0

Je pense qu'une meilleure réponse incorporerait certaines des réponses ci-dessus pour donner un code très pauvre comme indiqué ci-dessous.

def valley(l): 
    if(len(l)<3): 
    return(False) 
    for i in range(0,len(l)-1): 
    if(l[i]<l[i+1]): 
     for i in range(i,len(l)-1): 
     if(l[i]>=l[i+1]): 
      return(False) 
     return(True) 
    elif(l[i]==l[i+1]): 
     return(False) 
    else: 
     return(False)