Страницы

Поиск по вопросам

среда, 17 октября 2018 г.

Code golf - сортировка символов строки по алфавиту

Задание: написать функцию (метод) который будет принимать строку и возвращать ее рассортированную по алфавиту, игнорируя регистр.
К примеру если передать сТрока то она должна вернуть акорсТ Строка, передаваемая в вашу функцию может быть как на английском, так и русском языке, но не комбинированной обоими. Причем строки с буквой Ё тоже должны правильно сортироваться.
апХчиЕмаЁ -> ааЕЁимпХч Предполагается что будет передаваться лишь строка из букв и ничего более (ни цифр, ни знаков препинания, ничего, кроме букв)
Условия: участники могут отвечать на разных языках, публикуя такие решения в разных ответах. Победителем станет тот, кто напишет ее за меньшее количество символов, структура ответа - язык, в скобках количество символов, сам код, ссылка на проверку.
Победитель получит 500 репутации, поехали! Итоги проведутся через 3 дня (статус конкурса откроется, ответ победителя отмечу верным)

Пожалуйста, указывайте в ответе количество символов, чтобы проще было выявить победителя.
function getAnswers(questionId, answer_filter, page) { return jQuery.ajax({ url: '//api.stackexchange.com/2.2/questions/' + questionId + '/answers?page=' + page + '&pagesize=100&order=desc&sort=activity&site=ru.stackoverflow&filter=' + answer_filter, method: "get", dataType: "jsonp", crossDomain: true }).then(function(data) { if (data.has_more) { return getAnswers(questionId, answer_filter, page + 1).then(function(d) { return data.items.concat(d.items); }) } return data.items; }); } function getAuthorName(e) { return e.owner.display_name } function process(items) { return items.map(function(item) { var matched = item.body.match(/(\d+)[^\d]*?<\/h/); if (matched) { return { count: +matched[1], link: item.share_link, author: getAuthorName(item) }; } else { return { count: 'N/A', link: item.share_link, author: getAuthorName(item) } } }); } function sort(items) { return items.sort(function(a, b) { if (a.count == 'N/A') return 1; if (b.count == 'N/A') return -1; return a.count - b.count; }) } function fillTemplate(sortedItems) { $('#leadership').append(sortedItems.map(function(item, index) { return $('').append($('').html(index + 1)) .append($('').html(item.author)) .append($('').html(item.count)) .append($('').append($('').attr('href', item.link).text('Link'))); })); return sortedItems; } var QUESTION_ID = 671346, ANSWER_FILTER = "!4*SyY(4Kifo3Mz*lT", startPage = 1; getAnswers(QUESTION_ID, ANSWER_FILTER, startPage) .then(process) .then(sort) .then(fillTemplate); #leadership { border-collapse: collapse; } #leadership td, #leadership th { padding: 5px; } #leadership th, td:nth-child(3) { text-align: center; }

Таблица лидеров

Автор Количество символов


Ответ

Pyth (17 16)
DhZRo:rN0\ё"ее"Z
Проверка
Расшифровка. pyth стековый язык, поэтому параметры немного не там, где вы возможно привыкли их видеть...
DhZ Объявить функцию h(Z) R возвращающая (return) o сортировка с помощью лямбда-функции "labda N:" : строковая замена (из стека) rN0 переводим букву параметр лямбды(N) в нижний регистр, кладем в стек "ё" кладем в стек второй параметр замены - "что меняем" "ее" и третий - "На что меняем" Z помещаем в стек входную строку для "o"

Комментариев нет:

Отправить комментарий