Сортировка с помощью AlphaFun - PullRequest
0 голосов
/ 25 марта 2012

Итак, у нас есть проблема, которую мы пытаемся решить. Вот что спрашивает проблема. У Лестера есть список слов, которые он хочет напечатать не в обычном алфавитном порядке, но и не в случайном порядке. Он выбрал метод сортировки слов, которые он называет порядком AlphaFun. Метод заказа AlphaFun сортирует слова, используя следующую процедуру 1. сначала сравните 2-ю букву слова 2. затем сравните 4-ую букву слов (4-я буква будет считаться пробелом в словах, содержащих менее 4 букв). 3. сравните последнюю букву слов (последняя буква всегда будет последней буквой слова, а не пробелом). 4. В конце сравните первую букву в словах. 5.Если все вышеперечисленные символы совпадают, слова, используемые для этих букв, сортируются в алфавитном порядке.

обратите внимание на эти примеры Слова:

ЯЙЦО

ЯЙЦА

ХЛЕБ

ALPHAFUN:

G SE

GSSE

RADB

Input входные файлы содержат и неизвестное количество строк, где каждая строка содержит одно слово, состоящее из 3-10 букв. выход вы напечатаете слова в альфа-порядке

пример входного файла: ХЛЕБ выводок ШИРОКИЙ ЯЙЦА ЯЙЦО КОШЕЛЬКА

пример вывода на экран БУМАЖНИК выводок ЯЙЦО ЯЙЦА ХЛЕБ ШИРОКИЙ

как мы можем решить эту проблему? мы застряли на нем как 2 часа.

Ответы [ 2 ]

1 голос
/ 25 марта 2012

как мы можем решить эту проблему?мы застряли на нем около 2 часов.

На самом деле Java делает это довольно легко.Вам просто нужно реализовать Comparator<String> в классе, например,

public class AlphaFunComparator implements Comparator<String> {
    public int compare(String o1, String o2) {
        // Implement rules described in the question
    }
}

Затем вам просто нужно загрузить файл в список и вызвать:

Collections.sort(list, new AlphaFunComparator());

Распечатайте список, и все готово.

1 голос
/ 25 марта 2012

Реализуйте логику упорядочения в классе Comparator, затем соберите строки в какой-нибудь список (ArrayList), наконец, используйте Collections.sort (arrayList, myComparator):

Collections.sort (Список, Компаратор)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...