Найти - Пользователи
Полная версия: Помогите решить задачу по определению кол-ва участков в списке
Начало » Python для новичков » Помогите решить задачу по определению кол-ва участков в списке
1 2
Andrei
Здравствуйте! Недавно начал изучать Python. Если быть точнее это мой первый язык программирования.
Прошу помочь с решением задачи:

Задан список из целых чисел. Определить количество участков списка, на котором
элементы монотонно возрастают (каждое следующее число больше предыдущего).

Заранее спасибо за помощь!
Romissevd
Ваши попытки есть? Выкладывайте…
Andrei
Ну если я правильно понимаю суть задачи, то нужно сравнивать два идущим друг за другом элемента списка. Монотонность возрастания это не меньше трех элементов. Вот примерно такие наработки:

spisok=
n=15
from random import randint
for i in range(n):
i=randint(0,20)
spisok.append(i)
print(spisok)

count=0
rez=0

for j in range(n-1):
a=spisok
b=spisok
if b>a:
count+=1 #вот начиная отсюда, запутался
if count>=2 and b<a:

Romissevd
Andrei
 a=spisok
b=spisok
if b>a:
Сравниваете списки, а ход мыслей правильный
Andrei
нужно сравнивать два идущим друг за другом элемента списка
ivn
не лучший пример, но с чего то можно начать:
 import random
list = [random.randint(0, 20) for el in range(20)]
print(list)
for i, el in enumerate(list):
    if i == len(list) - 1:
        break
    if el > list[i+1]:
        print(str(el) + ' больше чем следующее ' + str(list[i+1]))
    else:
        print(str(el) + ' не больше чем следующее ' + str(list[i+1]))
Andrei
Почему то не получается вставить квадратные скобки в сообщении.
Извиняюсь, за то что не по теме
Romissevd
оборачивайте код в теги и будет Вам счастье
Andrei
 a=spisok[j]
b=spisok[j+1]

спасибо!
Romissevd
 if count>=2 and b<a:
в теле нужно добавить к rez 1 и обнулить count
Andrei
Всем спасибо за помощь! Задачу решил вот так:
 import random
lst = [random.randint(0, 20) for el in range(40)]
print(lst)
result=0
count=0
for j in range(len(lst)-2):
    if lst[j+2] > lst[j+1] > lst[j]:
        count+=1
    elif count>=1 and lst[j+1] > lst[j+2]:
        result+=1
        count=0 
if lst[-1] > lst[-2] > lst[-3]:
    result+=1
print(result)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB