Определить минимальное количество первых символов слов
► Задание 1
Строка состоит из нескольких слов, разделенных пробелом. Определить минимальное количество первых символов слов, по которым можно различить слова в строке. Входные данные: abc5 abc0 abcde abcfg Выходные данные: 4 |
Написать на Паскале
|
Цитата:
Код:
Var |
Спасибо Вам БОЛЬШОЕ!!!
Разрешаю быть свободным=) |
Цитата:
__________________________________________________ ______________ |
Я понимаю что уже почти месяц прошел, но не могли бы вы описать как и что делает второй цикл Repeat?
|
Цитата:
Как Вы, вероятно, поняли, в первой части программы из строки выделяются отдельные слова и записываются в строковый массив W. Также определяется количество слов Nw. Дальше начинаем анализировать полученный массив. Делается это так. Последовательно увеличиваем номер символа Nsymb, начиная с первого, до тех пор, пока не убедимся, что во всех без исключения словах на позиции, соответствующей текущему номеру, стоят различные буквы без единого совпадения. Тогда булевский флажок b сохраняет значение true и текущий номер принимается за ответ. Но! Представьте себе, что строка такая: приз призёр призовой Здесь, пройдя 4 номера, обнаруживаем, что первое слово кончилось! За такую ситуацию отвечает флажок b1, и если подобное произошло, то этот флажок перебрасывается в true и программа рапортует "Решения нет!". |
Простите, я тут туплю немного (или много), но вот в этой части я вообще не понимаю как идёт подсчет
For i:=1 to Nw do If Length(W[i])<Nsymb then b1:=true; If Not(b1) then For i:=1 to Nw-1 do For j:=i+1 to Nw do If W[i][Nsymb]=W[j][Nsymb] then b:=false; |
Цитата:
Дальше немного сложнее. Пусть текущий номер, например, Nsymb=3. Наша задача - сопоставить символы, стоящие на третьей позиции, для всех слов, и только если они все окажутся различными, то 3 будет ответом на задачу. Пусть, для примера, массив содержит 5 слов. Тогда третий символ первого слова сопоставляем с третьими символами второго, третьего, четвертого и пятого, затем третий символ второго слова сопоставляем с третьими символами третьего, четвертого и пятого слов (с первым словом уже не надо), затем третий символ третьего слова - с третьими символами четвертого и пятого, и, наконец, третий символ четвертого с третьим символом пятого. И если обнаружим хоть одно совпадение, то переходим к Nsymb=4, потом к Nsymb=5 и т.д. |
Спасибо=))
|
Часовой пояс GMT +4, время: 00:32. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.