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
-3
A
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)
Et que voulez-vous exactement? Est-ce un devoir? – usamec