DI String Match

A permutation perm of n + 1 integers of all the integers in the range [0, n] can be represented as a string s of length n where:

s[i] == 'I' if perm[i] < perm[i + 1], and
s[i] == 'D' if perm[i] > perm[i + 1].

Given a string s, reconstruct the permutation perm and return it. If there are multiple valid permutations perm, return any of them.

Example 1:

Input: s = "IDID"
Output: [0,4,1,3,2]

Example 2:

Input: s = "III"
Output: [0,1,2,3]

Example 3:

Input: s = "DDI"
Output: [3,2,0,1]

Constraints:

1 <= s.length <= 105
s[i] is either 'I' or 'D'.

Solution

class Solution {

    /**
     * @param String $s
     * @return Integer[]
     */
    function diStringMatch($s) {
        
        if( strlen($s) < 1 || strlen($s) > pow(10,5) ) return [];

        $I = 0;
        $D = strlen($s);
        $perm = [];
        
        for( $i = 0; $i < strlen($s); $i++ ) {
            
            $perm[] = $s[$i] == 'I' ? $I++ : $D--;
        }
        
        $perm[] = $s[strlen($s)-1] == "I" ? $I++ : $D--;

        return $perm;
    }
}

118 thoughts on “DI String Match”

  1. Дорогие бизнесмены, мы рады представить вашему вниманию прогрессивный продукт от AdvertPro – SERM (Search Engine Reputation Management), инструмент управления репутацией в сети Интернет! В цифровом мире, репутация в интернете имеет важную роль в успехе вашего бизнеса. Не допускайте, чтобы нежелательные отзывы и недоразумения нанесли ущерб доверию к вашему бренду.

    SERM от AdvertPro – это не просто ваш личный инструмент для развития положительного имиджа вашего бизнеса в интернете. Благодаря этого решения, вы получите полное управление над тем, что писают о вашем бизнесе пользователи. SERM просматривает онлайн-упоминания и работает на усиление позитивных отзывов, одновременно минимизируя влияние негатива. Мы применяем передовые алгоритмы анализа данных, чтобы вы всегда оставались на шаг впереди конкурентов.

    Вообразите, что каждый поиск о вашей компании ведет к позитивным отзывам: позитивные комментарии, убедительные истории успеха и блестящие рекомендации. С SERM от AdvertPro это не только возможно, находящаяся в пределах досягаемости каждому предприятию. Более того, наш инструмент открывает возможность воспользоваться ценной обратной связью для усовершенствования вашего сервиса.

    Не упустите возможность улучшить свою бизнес-репутацию. Обратитесь к нам уже сейчас для запроса консультации специалиста и внедрения SERM. Позвольте миллионам потенциальных клиентов видеть только с лучшим о вашем бизнесе каждый раз, когда они обращаются в интернет за информацией. Начните новую страницу в управлении репутацией в интернете – выберите AdvertPro!

    Сайт: https://serm-moscow.ru/ – серм анализ.

  2. Здоровье для меня всегда на первом месте, и благодаря ‘все соки’, у меня теперь есть замечательная https://h-100.ru/collection/sokovyzhimalki-dlya-granata – соковыжималка для граната электрическая. Она помогает мне получать максимум пользы из свежих фруктов каждый день.

  3. This is really interesting, You’re a very skilled blogger. I’ve joined your feed and look forward to seeking more of your magnificent post. Also, I’ve shared your site in my social networks!

  4. Thank you for your sharing. I am worried that I lack creative ideas. It is your article that makes me full of hope. Thank you. But, I have a question, can you help me?

  5. Обращение в https://seo-best1.ru для поисковой оптимизации моего сайта, когда обнаружил снижение трафика. Результаты не заставили себя ждать: компетентность команды, отзывчивые специалисты и видимый улучшение ранжирования. Рекомендую!

  6. После ремонта мне задумалось купить новая входная дверь. Обратился https://dvershik.ru благодаря удобной навигации по сайту и детальным описаниям товаров. Заказ был выполнен точно в срок, монтажники работали аккуратно и профессионально. Доволен качеством двери и предоставленными услугами, всем рекомендую!

Leave a Comment

Your email address will not be published. Required fields are marked *