Рубрики
Без рубрики

Codechef – Профессор И Направления

Код проблемы: ПРЯМОЙ Профессор смотрит на Север. Токио в беде, и она сталкивается с… С пометкой “Информатика”, “программирование”, “конкурентное программирование”, “java”.

Код проблемы: ПРЯМОЙ

Профессор смотрит на Север. Токио в беде, и она смотрит на Юг. Профессор, будучи ее ангелом-хранителем, хочет ей помочь.

Итак, Профессор будет следовать некоторым инструкциям, приведенным в виде строк длиной N, и повернет либо влево, либо вправо в соответствии с этими инструкциями. Он может спасти Токио только в том случае, если, следуя подстроке инструкций, он повернется лицом в том же направлении, что и Токио.

Сможет ли профессор спасти Токио?

Ввод

Первая строка содержит целое число T, обозначающее количество тестовых примеров. Затем следуют T-тестовые примеры. Первая строка каждого тестового примера содержит N. Вторая строка содержит строку, содержащую только ‘L’ и ‘R’, где ‘L’ обозначает левое, а ‘R’ – правое.

Выход

Для каждого тестового примера выведите “ДА”, если профессор сможет сохранить Токио, и “НЕТ” в противном случае.

Выходные данные не чувствительны к регистру, что означает, что “да”, “Да”, “Да”, “нет”, “Нет” – все такие строки будут приемлемыми.

Объяснение

Профессор, с которым он впервые столкнулся на северной стороне, цель – спасти Токио, Токио будет спасен только в том случае, если профессор повернется лицом к югу после выполнения инструкций. Инструкции содержат букву “L” для левого и “R” для правого. Мы определили две функции, а именно две левые и две правые, которые проверяют, появлялась ли буква L или R последовательно в строке 2 или более двух раз. Если это так, то вращение в одном и том же направлении дважды приведет к тому, что вы окажетесь лицом к противоположному направлению, в котором стоит человек, в данном случае профессор стоял в северном направлении.

После получения количества последовательных букв “L” или “R” . Следующее условие проверяет, равно ли значение 2 или больше 2, если оно равно true, то выводится значение “ДА”, в противном случае будет выведено значение “Нет”, и профессор не сможет сохранить данные.

Условие для проверки того, равно ли значение ‘L’ или ‘R’ или больше 2.

            int max = twoRight(str);
            int max1 = twoLeft(str);
            if(max >= 2 || max1 >=2) {
                System.out.println("YES");
            }else {

                System.out.println("NO");
            }

Проверьте количество поворотов влево и количество или право

private static int twoRight(String str) {
        int max = 0;
        for (int i = 0; i < str.length(); i++) {
            int count = 0;
            for (int j = i; j < str.length(); j++) {
                if (str.charAt(i) == str.charAt(j)) {
                    if(str.charAt(i)=='R'){
                        count++;
                    }

                } else break;
            }
            if (count > max) max = count;
        }
        return max;
        }
    private static int twoLeft(String str) {
        int max1 = 0;
        for (int i = 0; i < str.length(); i++) {
            int count = 0;
            for (int j = i; j < str.length(); j++) {
                if (str.charAt(i) == str.charAt(j)) {
                    if(str.charAt(i)=='L'){
                        count++;
                    }

                } else break;
            }
            if (count > max1) max1 = count;
        }
        return max1;
        }
 int max = twoRight(str);
            int max1 = twoLeft(str);
            if(max >= 2 || max1 >=2) {
                System.out.println("YES");
            }else {

                System.out.println("NO");
            }

Ввод:

3
12
LRLRRRLRLLLL
2
LR
4
LRRL

Выход:

YES
NO
YES

Ссылка на исходную проблему https://www.codechef.com/START16C/problems/DIRECTN/

Ссылка Для Запуска Кода:- кликните сюда

НРАВИТСЯ! ДЕЛИСЬ! КОММЕНТАРИЙ!

В эту серию будут регулярно добавляться новые проблемы.

Оригинал: “https://dev.to/atharvasiddhabhatti/codechef-professor-and-directions-5h0m”