Задачи
January 16

Максимальное число в подстроке

Задача: дана строка, которая представляет собой целое число. Необходимо вернуть наибольшее 3х-значное число в исходной строке, которое состоит из одной уникальной цифры. Если такого числа нет, верните пустую строку.

Входные данные: строка состоит только из цифр, размер строки от 3 до 1000.

Примеры:

  1. "2300019"
    Output: "000"
  2. "5777144449"
    Output: "777"

Разбор

Алгоритм довольной тривиальный: проходим по строке и собираем текущую строку из 3х символов и результируем максимальную из них.

Детали алгоритма смотрите ниже.

Реализация

static string FindLarge3DigitNum(string num) {
    string result = "";

    for (int i = 0; i < num.Length - 2; i++)
    {
        string curr = num.Substring(i, 3);
        if (num[i] == num[i + 1] && num[i + 1] == num[i + 
        2] && string.Compare(result, curr) < 0)
        {
            result = curr;
        }
    }

    return result;
}   

https://gist.github.com/unilecs/f687e0dc768fcd9fcd488672eced478e

Play-test

https://dotnetfiddle.net/DPF3Xs