Re[2]: Асемблер
От: glyph  
Дата: 24.06.04 12:21
Оценка:
Здравствуйте, Dr_Sh0ck, Вы писали:

D_S>Здравствуйте, zeny, Вы писали:

Z>>Подскажите пожелуйста как решить эту задачу:
Z>>Необходимо сделать функцию, которая делает следующее:
Z>>Дана строка слов разделённых пробелами, найти слово максимальной длинны.
Z>>Зараннее благодарен!

D_S>"В лоб", что называется, и решай.

Нееее...
D_S>1. Поставь указатель на начало строки.
Поскипал...
D_S>6. Как только достигнут конец всей строки, сохраненный указатель будет содержать начало самой длинной подстроки.
Зачем так?
Прощелкиваем всю строку. Запоминаем в массив номера позиций, в которой стоят пробелы. В конце цикла пишем в массив последним элементом длину строки. Затем находим попарные разности между элементами полученного массива и записываем рядом (все можно сделать в одном цикле). К примеру, получим что-то такое:
    Позиция    Разность
    3            12        (15-3)
    15            3        (18-15)
    18            5        (23-18)    
    23            5        (27-23)
    27            2        (29-27)
    29

Потом находим пару с самой большой разностью. Сразу получаем номер символа в строке и длину слова.
d TOXICITY — Chop Suey! d
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.