Отображение 1,2,3,4,5,6,8,10,11 как 1-6,8,10-11

Билл:

У меня есть эта последовательность 1,2,3,4,5,6,8,10,11

Ожидаемый результат 1-6,8,10-11

Эта проблема связана с форматированием последовательности в легко читаемой форме

Я пробовал с С # и использовал много if & else.

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

Я понятия не имею, как добиться этого очень просто.

Также для 1,2,3 я показал 1-3. Они сказали, что это неправильно !.

Есть ли в этой логике какой-либо шаблон проектирования (интерпретатор)?

Иван Г:

Вот один из способов сделать это:

        int[] numbers = { 1, 2, 3, 4, 5, 6, 8, 10, 11 };

        int start, end;
        for (int i = 0; i < numbers.Length; i++)
        {
            start = numbers[i];

            while (i < numbers.Length - 1 && numbers[i] + 1 == numbers[i + 1])
                i++;

            end = numbers[i];

            if(start == end)
                Console.WriteLine(start);
            else
                Console.WriteLine(start + " - " + end);
        }

Это отобразит последующие числа, которые постепенно увеличиваются как диапазон. Числа, которые не увеличиваются линейно, не записываются как часть диапазона.

Вот еще одна версия первого подхода, он использует тот же forцикл для итерации по диапазону:

        int temp = numbers[0], start, end;
        for (int i = 0; i < numbers.Length; i++)
        {
            start = temp;

            if (i < numbers.Length - 1 )
                // if subsequent numbers are incremental loop further
                if (numbers[i] + 1 == numbers[i + 1])
                    continue;
                // if they are not, number at index i + 1 is a new 'start' for the next iteration
                else
                    temp = numbers[i + 1];

            end = numbers[i];

            if (start == end)
                Console.WriteLine(start);
            else
                Console.WriteLine(start + " - " + end);
        }

Эта статья взята из Интернета, укажите источник при перепечатке.

Если есть какие-либо нарушения, пожалуйста, свяжитесь с[email protected] Удалить.

Отредактировано в
0

я говорю два предложения

0обзор
Войти в системуУчаствуйте в комментариях

Статьи по теме

я хочу сделать массив [1,2,3,4,5,6,7,8,9,10,11] в массив [1,2,3,4,5,6,7,8,9,1 , 0,1,1], используя только этот алгоритм

Javascript: разделить массив по шаблону: элементы 1, 5, 10, затем 2, 6, 11, затем 3, 7, 12

Проблема при разделении данных: KeyError: «Ни один из [Int64Index ([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], dtype = 'int64')] не находится в [столбцы] "

Мне нужно сгладить многомерный массив с помощью плоского метода JS. Это массив [[«1», «0»], [«3», «5», [«8», [«10»], «11»]],]

Как Mysql ASC заказать 1,2,3,4,5, а не 1,10,11,12?

Как повторить последовательность: 1,2,3,4,5,6,1,2,3,4,5,6,7,8,9,10,7,8,9,10 в r

Как отсортировать имена изображений с цифрами, такими как 1,2,3,4 ..., а не 10,11,12,13 в папке с возможностью переноса?

Как подавить предупреждение sprintf () 'запись директивы от 1 до 11 байтов в область размером 6'

Если отображается (15), мне нужен результат 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, 16, 18, 20, 24

postgres Мне был предоставлен набор чисел вроде "1,2,3,6,7,8,11,12,15,18,19,20" получить максимум последовательных номеров каждой группы

Как преобразовать list = [1,2, [3,4], [5,6], 7, [8,9,10]] в list1 = [1,2,3,4,5,6,7,8 , 9,10] в питоне?

Generate series and show sum of 1*3*5 + 2*5*8 + 3*7*11

Файл данных содержит только 10 столбцов, при загрузке txt в R возникла ошибка «в строке 1 не было 11 элементов».

общая функция для генерации этой последовательности: 1 4 3 6 5 8 7 10 9 12 для первых n = 100 чисел в R

Регулярное выражение в Java для сопоставления C 10 10 или L 1 2 6 2 или R 14 1 8 3

Я ожидал, что результат будет примерно таким: [[1,2,3,4,5,6,7,8,9,10], [2,4,6,8,10,12 ... 18,20] , [3,6,9 ... 27,30] ..... [9,18,27..90]]

Добавьте элементы массива как [0], a [1] + a [2], a [3] + a [4] + a [5], a [6] + a [7] + a [8]]. + a [9] ... и так далее

пока цикл | обратный счет n .... 8 7 6 5 4 3 2 1

Переупорядочить массив PHP, изменить порядок 1, 2, 3, 4, 5, 6, 7, 8, 9 на 1, 4, 7, 2, 5, 8, 3, 6, 9

Закажите неупорядоченный массив чисел от 1 до 8, чтобы конечные и начальные целые числа чередовались, например [8,1,7,2,6,3,5,4,]

R: Как сделать последовательность (1,1,1,2,3,3,3,4,5,5,5,6,7,7,7,8)

Таргетинг на 1-й, 6-й, 11-й пост в цикле

Как добавить каждую строку от 11-20 к каждой строке от 1-10 в VIM

Как добавить +1 в конкретный столбец, если дата в другом столбце = '2020-11-10', например, в SQL

Java Кастинг: Java 11 бросков LambdaConversionException в то время как 1,8 не

Мое приложение Flutter не работает на Android 11, но отлично работает в эмуляторе, а также на Android 8 || (Ошибка ОС: операция не разрешена, errno = 1)

parallelStream () Java 1,8 против 11

ParalleStream () Java 1,8 против 11

составляя комбинации из 6 чисел, используя три пары из четырех пар (1,2), (3,4), (5,6), (7,8) в R

TOP список

  1. 1

    Распределение Рэлея Curve_fit на Python

  2. 2

    TypeError: store.getState não é uma função. (Em 'store.getState ()', 'store.getState' é indefinido, como posso resolver esse problema?

  3. 3

    Как добавить Swagger в веб-API с поддержкой OData, работающий на ASP.NET Core 3.1

  4. 4

    (fields.E300) Поле определяет связь с моделью, которая либо не установлена, либо является абстрактной.

  5. 5

    В типе Observable <unknown> отсутствуют следующие свойства из типа Promise <any>.

  6. 6

    How to click an array of links in puppeteer?

  7. 7

    Перебирайте несколько столбцов в фрейме данных Panda и находите уникальные значения подсчета

  8. 8

    Merging legends in plotly subplot

  9. 9

    ViewPager2 мигает / перезагружается при смахивании

  10. 10

    Текущая ветка не настроена для извлечения В конфигурации не найдено значение для ключа branch.master.merge

  11. 11

    How to normalize different curves drawn with geom = "step" when using stat_summary

  12. 12

    SQL Вычтите две строки друг от друга в одном столбце, чтобы получить результат

  13. 13

    Метод ошибки Illuminate \\ Database \\ Eloquent \\ Collection :: save не существует. в Laravel

  14. 14

    Ошибка «LINK: фатальная ошибка LNK1123: сбой при преобразовании в COFF: файл недействителен или поврежден» после установки Visual Studio 2012 Release Preview

  15. 15

    JavaFX TextArea как установить текст с автоматическим переносом новой строки

  16. 16

    Как я могу нарисовать заполненный прямоугольник в JFreeChart?

  17. 17

    как я могу удалить vue cli 2?

  18. 18

    Отчеты Fabric Debug Craslytic: регистрация, отсутствует идентификатор сборки, применить плагин: io.fabric

  19. 19

    Elasticsearch - Нечеткий поиск не дает предложения

  20. 20

    Метки значений столбцов BarChart скрыты полем

  21. 21

    Ошибка Phusion Passenger с Rails 4 и Ruby 2.5

популярныйтег

файл