payk Опубликовано 18 мая, 2010 Жалоба Поделиться Опубликовано 18 мая, 2010 Программа в которой упорядочиваются слова по количеству в них букв "А". Нужен код упорядочивающий слова в строке. Ссылка на комментарий
payk Опубликовано 19 мая, 2010 Автор Жалоба Поделиться Опубликовано 19 мая, 2010 все не знают ? ? плизз скажите )) Ссылка на комментарий
Lakers Опубликовано 19 мая, 2010 Жалоба Поделиться Опубликовано 19 мая, 2010 бъёш на отдельные слова->считаеш сколько в каждом слове букв "А"->сортиш по этому признаку->оставляеш новую строку. Ссылка на комментарий
L0K1 Опубликовано 19 мая, 2010 Жалоба Поделиться Опубликовано 19 мая, 2010 бъёш на отдельные слова->считаеш сколько в каждом слове букв "А"->сортиш по этому признаку->оставляеш новую строку.Предлагаю ввести новое правило в разделе, давать только алгортим + отдельно чинит чужой код =) Ссылка на комментарий
payk Опубликовано 19 мая, 2010 Автор Жалоба Поделиться Опубликовано 19 мая, 2010 я не знаю как эти слова отдельно от друг друга записать, что бы удобно было сортировать Ссылка на комментарий
L0K1 Опубликовано 19 мая, 2010 Жалоба Поделиться Опубликовано 19 мая, 2010 забиваем в строку все знаки препинания и проверяем есть ли текущий символ, там)Тебе надо 2 алгоритма1. - подсчет ААА в слове2. - разболр на слова. Ссылка на комментарий
payk Опубликовано 19 мая, 2010 Автор Жалоба Поделиться Опубликовано 19 мая, 2010 вот в том то и дело, я то я не знаю как в каждом слове, по отдельности подсчитать ААА и перемещать слова. Может слова в массив ввести и там отсортировать и вывести ? (если можно, объясните как вводить слова в массив ) *29 Ссылка на комментарий
Dik Опубликовано 19 мая, 2010 Жалоба Поделиться Опубликовано 19 мая, 2010 Знаков препинания судя по заданию у автора быть в строке не должно, в крайнем случае их можно отрезать. А слова друг от друга отделяйте по пробелам, забивайте в массив, подсчет и сортировка труда составить не должны.Предлагаю ввести новое правило в разделе, давать только алгортим + отдельно чинит чужой код =)Хорошая идея. Ссылка на комментарий
NAT Опубликовано 19 мая, 2010 Жалоба Поделиться Опубликовано 19 мая, 2010 Может слова в массив ввести и там отсортировать и вывести ? (если можно, объясните как вводить слова в массив )ёпт мы же это ещё в сентябре проходили Ссылка на комментарий
payk Опубликовано 19 мая, 2010 Автор Жалоба Поделиться Опубликовано 19 мая, 2010 NATпо моему в январе)) я не помню ))) Ссылка на комментарий
The_Ice Опубликовано 19 мая, 2010 Жалоба Поделиться Опубликовано 19 мая, 2010 module Main whereimport System.Environmentimport Data.Charimport Data.List (intersperse)import Control.Arrowsort [] = []sort ((cnt, line):lines) = [(x,y) | (x,y) <- lines, x < cnt] ++ [(cnt,line)] ++ [(x,y) | (x,y) <- sort lines, x >= cnt]count_chars:: Char-> String ->(Int, String)count_chars char word = (length $ filter (==char) word, word)split:: (Char-> Bool)-> String->[String]split f string = split' f string [] where split' f [] tmp = tmp split' f string tmp = let h = takeWhile f string t = case dropWhile f string of [] -> [] some -> tail some in split' f t $ (h:tmp)sort_by:: Char->String->[String]sort_by char string = map (\(cnt, word)-> word) $ sort $ map (count_chars char ) $ split (isAlpha) stringmain = do args <- getArgs let char = head $ head args out = sort_by char $ head $ tail args putStrLn $ "needed char: " ++ head args putStrLn $ "source string: " ++ (head $ tail args) putStrLn $ "result: " ++ ( concat $ intersperse " " out)что то типо того (: Ссылка на комментарий
Dik Опубликовано 19 мая, 2010 Жалоба Поделиться Опубликовано 19 мая, 2010 что то типо того (:Или вот этого (:parSym = raw_input("Sort by char?: ")ls = parStr.split(" ")ls.sort(key=lambda sr: str.count(sr, parSym))print ' '.join([str(x) for x in ls])parStr = raw_input("Source string: ") Ссылка на комментарий
payk Опубликовано 19 мая, 2010 Автор Жалоба Поделиться Опубликовано 19 мая, 2010 извиняюсь )) нужна прога на делфи *31 Ссылка на комментарий
Vlad Опубликовано 19 мая, 2010 Жалоба Поделиться Опубликовано 19 мая, 2010 извиняюсь )) нужна прога на делфи *31 ржунимагу зачем тебе прога на делфи просто сразу иди в сельское хозяйство. ЗАдача на самом деле элементарная и если ты не можешь даже представить как ее решать (я не говорю уже о реализации) то грош тебе цена как кодеру.Добавлено спустя 4 минуты 7 секунд:#/usr/bin/pythonparStr = raw_input("Source string: ")parSym = raw_input("Sort by char?: ")ls = parStr.split(" ")ls.sort(key=lambda sr: str.count(sr, parSym))print ' '.join([str(x) for x in ls]) Согласен!!! Питон рулит Ссылка на комментарий
X-tender Опубликовано 19 мая, 2010 Жалоба Поделиться Опубликовано 19 мая, 2010 print join(' ',sort{$b=~tr/aA/aA/<=>$a=~tr/aA/aA/}split(" ",<>))или$,=" ";$_=<>;print sort{$b=~y/A/A/-$a=~y/A/A/}splitPerl рулит Еще руби рулит puts gets.split.sort_by{|i|i.count 'A'}*' ' Ссылка на комментарий
Dik Опубликовано 19 мая, 2010 Жалоба Поделиться Опубликовано 19 мая, 2010 X-tenderВсе рулит если, как говорится, "руки растут откуда надо" .paykВот тебе привели кучу готовых алгоритмов, так что твоя задача свелась к элементарному переписыванию этого на Delphi. Ссылка на комментарий
X-tender Опубликовано 19 мая, 2010 Жалоба Поделиться Опубликовано 19 мая, 2010 Продолжение "Perl рулит2":perl -aple '$_="@{[sort{$b=~y/A//-$a=~y/A//}@F]}"' Ссылка на комментарий
The_Ice Опубликовано 19 мая, 2010 Жалоба Поделиться Опубликовано 19 мая, 2010 Ну, вот так еще, но, тоже не в одну строку)module Main whereimport System.Environmentimport Data.Charimport Data.List (intersperse,sortBy)import Data.List.Splitimport Control.Arrowmain = do args <- getArgs let char = head $ head args chars = length . filter (==char) sort' a b | chars a < chars b = LT | chars a > chars b = GT | otherwise = EQ sort = tail >>> head >>> splitWhen (not . isAlpha) >>> sortBy sort' putStrLn $ "needed char: " ++ [char] putStrLn $ "source string: " ++ (tail >>> head) args putStrLn $ "result: " ++ ( sort >>> intersperse " " >>> concat) args Ссылка на комментарий
X-tender Опубликовано 19 мая, 2010 Жалоба Поделиться Опубликовано 19 мая, 2010 А вот дебильный пузырек у меня $_=<>;s#(\w+)\s(\w+)#($2=~m/A/g>$1=~m/A/g)?"$1 $2":"$2 $1"#ex;print Ссылка на комментарий
The_Ice Опубликовано 19 мая, 2010 Жалоба Поделиться Опубликовано 19 мая, 2010 Вот интересно, как в этом разбираться, спустя, скажем, год?) Ссылка на комментарий
X-tender Опубликовано 19 мая, 2010 Жалоба Поделиться Опубликовано 19 мая, 2010 The_Ice, гольф не разбирают) его интереснее снова сгольфить) а если по работе то перл может быть очень и очень понятен) Ссылка на комментарий
payk Опубликовано 20 мая, 2010 Автор Жалоба Поделиться Опубликовано 20 мая, 2010 paykВот тебе привели кучу готовых алгоритмов, так что твоя задача свелась к элементарному переписыванию этого на Delphi.как выучу С+ или на чем вы там делаете, так и переведу может быть )) Ссылка на комментарий
danger Опубликовано 20 мая, 2010 Жалоба Поделиться Опубликовано 20 мая, 2010 Так и никто и не написал кода на С++. Хотя и на нем бы код был короток и особенно ПОНЯТЕН. При этом скорость работы думаю была бы выше чем у новомодных руби перла)а на паскале тебе надо? вот тебе примерно, переписывай))))функция подсчет количества букв(строка, буква)начало от начала строки и до конца если наш символ, то прибавляем счетчиквозващаем счетчик, изначально равный нулю))конецначало заводим массив строк для хранения слов считываем строку от начала и до конца строки бежим, и накапливаем слово если нашли пробел, заносим слово в конец массива, обнуляемя слово после цикла проверили слово на пустоту, вдруг не пустое, надо тода его тоже занести в конец массива слов. //слова считали, можно сортировать от 0 до количества слов от нуля до количества слов если подсчет количества букв(слово текущее, А) больше чем подсчет количества букв(слово следующее, А), то меняем их местами ну все, от 0 и до количества слов выводим словаконецфуууу, ну все, до здравствует ПСЕВДОКОД!!!!отныне все пишите лузерам ТОЛЬКО ПСЕВДОКОДЫ!!!!зато научатся думать если захотят. Тупых людей не бывают,бывают ленивые Ссылка на комментарий
X-tender Опубликовано 20 мая, 2010 Жалоба Поделиться Опубликовано 20 мая, 2010 danger, perl новомоден? он всего на 2 года моложе плюсов. Никакой трудности написать ни с ни на плюсах не состоит. Просто это не интересно. Ссылка на комментарий
danger Опубликовано 21 мая, 2010 Жалоба Поделиться Опубликовано 21 мая, 2010 X-tender ну чтож, вопрос интереса для каждого свой) Ну хотя думаю ни для какого новичка 1 строчка непонятного кода ничего не скажет)))). А про С++ я упомянул для payk, он же там говорил что как выучу С+ или на чем вы там делаете, так и переведу может быть )). Так что и не сомневаюсь что нет трудностей для человека знающего язык, а приводить строчки кода надо не для такого новичка, а там на миптах и тимусах, где можно посоревноваться с достойными в этом деле Ссылка на комментарий
Рекомендуемые сообщения
Пожалуйста, войдите, чтобы комментировать
Вы сможете оставить комментарий после входа в
Войти