Рубрики
Uncategorized

Решение для PHP с кодом Leetcode — D54 937. Изменение порядка файлов журналов

Автор оригинала: David Wong.

Ссылка на Заголовок

937. Измените Порядок Файлов Журналов

Анализ названия

Учитывая массив, каждый элемент является журналом.

Первая часть каждого журнала-это идентификатор (ID). Остальное: вся строка нижнего регистра (называемая журналом символов) или строка всех чисел (называемая цифровым журналом).

Определяется, что в данном массиве будет по крайней мере одна буква.

Измените порядок массива таким образом, чтобы журнал символов находился спереди, а журнал чисел-сзади. Журналы символов сортируются в алфавитном порядке по возрастанию, а журналы чисел сортируются в том же порядке (т. Е. В том порядке, в котором они отображаются).

Возвращает отсортированный массив.

размышляющий

Для каждого журнала: Сначала вам нужно разделить разделы идентификатора и журнала. Определите, является ли это символьным журналом или цифровым журналом, и сохраните его в соответствующем массиве. После обхода журнал символов сортируется. После этого соедините массив цифровых журналов и верните его.

Окончательный код

php
class Solution {

    /**
     * @param String[] $logs
     * @return String[]
     */
    function reorderLogFiles($logs) {
        $letters = [];
        $digits = [];
        foreach($logs as $log){
            $values = explode(' ',$log);
            $id = array_shift($values);
            $firstLetter = ord($values[0][0]) - ord('0');
            if($firstLetter>=0 && $firstLetter<=9){
                $digits[] = $log;
            }
            else{
                $letters[implode(' ',$values)] = $log;
            }
        }
        ksort($letters);
        return $letters+$digits;
    }
}

Если вы считаете, что эта статья полезна для вас, вы можете воспользоваться поддержкой генерации энергии ИИ.