| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [Delphi]Сравнение строк. с помшью ф-ции ORD |
| Автор: Нэраварин 9.3.2009, 14:17 |
| С помощию множества решить неудалось т.к оно неможет содержать одинаковые эл. и например слово Бар и Абар оно сочтёт одним и тем же (если просто буквы сравнивать). Идея алгоритма такова что нужно как то завести два масива вних впихать через ф-цию ORD коды символов и пробежав по масиву выяснить можно ли при перестановки букв из одного слова получить другое (ну например ток-кот). Мой враг чистый лист, мозг остановился или совсем у меня его нет Условие задачи таково :Пусть даны две строки str1 и str2. Необходимо выяснить, можно ли из str1 путём перестановки литер получить строку str2 Пожалуйста помогите написать код..... |
| Автор: grigiv 11.3.2009, 07:02 |
| Здравствуйте! Еще нужна помощь? Помогу за вознаграждение. Обращайтесь: [email protected] http://www.grigiv.h15.ru P.S. Высылайте подробное задание и сообщите желаемый срок выполнения работы. |
| Автор: Нэраварин 11.3.2009, 15:00 |
| Если бы у мну было много денег я бы непарился отсыпал кому нада и все бы задачи были решены, но так как я руский а все русские любят холяву |
| Автор: Нэраварин 11.3.2009, 15:24 | ||||
А можно примерчиком в виде кода? |
| Автор: zim22 11.3.2009, 15:47 | ||
только на С++
|
| Автор: Нэраварин 12.3.2009, 11:56 |
| To zim22 пасиба конешно за помощь, но мне нужен пример на делфи и имено по такому алгоритму: В массив впихать через ф-цию ORD коды символов, и пробежав по масиву,(и сравнив все коды символов) выяснить можно ли при перестановки букв из одного слова получить другое (ну например ток-кот). С++ я незнаю но так посмотрев на код я понел что ты просто сортируешь а потом сравниваешь две строки; Но строки не имеют одинаковую длину просто пользователь вводит в Edit'ы разные слова, а мне нужно пробежав по двум этим строкам вывести на лейбл ответ можно ли составить из 1-го 2-е слово.(то есть банально если есть такое же кол-во букв и используются теже буквы то ответ "да" и пофиг если там будет абракадабра) на паскале вроде бы нет такого для строк, а мне нужен пример кода(на паскале) где из Edit1 вытягивается с помощью функции ORD код символа и вставляется в масив вот имено это я и не понимаю как написать на паскале |
| Автор: morpheyushka 12.3.2009, 13:55 | ||||
а что тут не понятного?
|
| Автор: Нэраварин 14.3.2009, 13:38 | ||||||
В строчке for i := 0 to Length(S - 1) do ошибка типо мол несовместимые типы строка и целое число, да и при том что то нехочет работать вбивка в масив таким образом |
| Автор: zim22 14.3.2009, 13:59 |
попробуй так: for i := 0 to Length(S) - 1 do |
| Автор: Нэраварин 19.3.2009, 15:11 |
| спасибо вам обоим за помощь, жаль немогу повысить вам репутацию, нет прав |
| Автор: Нэраварин 17.4.2009, 12:33 |
| Оказалось, что решение этой задачи с помощью сортировки массива и поиск в нём совпадени оказалась неэффективная (Мол а что если у вас будет очень много слов и сортировка работать будет долго неэкономно не практично и т.п) Я так думаю нужно впихнуть в массив коды букв или сами буквы(без разницы какого типа будет масив подойдут оба способа) и одновременно проходится по двум массивам и если находятся одинаковые буквы в них удалять их из масива такой логикой по идее мы прийдём к тому что у масивов будет нуль различий(в случае если можно составить слова) нуль различий и будет признаком схожести слов, но вот как это записать на паскале "проходится одновремено по двум масивам да ещё и удалять одинаковые символы" я никак додуматься немогу особено как их удалять из масива. Пожалуйста подскажите |