Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Python: Общие вопросы > Помогите пожалуйста решить задачку на Python !!!


Автор: Desha 26.4.2005, 21:57
Язык программирования: PYTHON
Вводится массив. Найти в нем длину самой длинной возрастающей подпоследовательности. Динамическими массивами не пользоваться.
Вход
В первой строке входа дан размер вводимого массива N (1<=N<=100). Затем следуют N элементов массива (целые числа, по одному в каждой строке).
Выход
В первую строку выхода напечатать результат.
Пример
Вход:

6
5
1
4
6
2
10
Выход:

3

Знаю задачка несложная но и я не сильна в программировании тем более в питоне, а сроки просто подрезали smile Помогите плиз кто может !!! Буду очень и очень благодарна !!!

Автор: Lich 27.4.2005, 04:24
Код

#!/usr/bin/python
# -*- coding:koi8-r -*-

import sys

size=sys.stdin.readline()

try:
    size=int(size)
except:
    print >> sys.stderr,'Size must be number!'
    sys.exit(1)

if size<=0:
    print >> sys.stderr,'Invalid size!'
    sys.exit(1)

old_len=0
prev_num=False
for i in range(size):
    cur_num=sys.stdin.readline()
    try:
        cur_num=int(cur_num)
    except:
        print >> sys.stderr,'Invalid number!'
        sys.exit(1)

    if prev_num:
        if cur_num>prev_num:
            cur_len+=1
        else:
            if cur_len>old_len:
                old_len=cur_len

            cur_len=1

    else:
        cur_len=1

    prev_num=cur_num

print (old_len>cur_len and old_len) or cur_len


Навскидку... можно наверное и проще...

Автор: Desha 27.4.2005, 13:29
Spasiboo oogromnoee !!!!!! Dazh neznaju kak otblagodaritj !!!! spasiboo !!! Prosto viru4ill !!!!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)