Java Puzzle – Хорошая строка / Плохая строка

1. Что такое хорошая или плохая строка?

Чанду очень любит строки.(Или он так думает!) Но ему не нравятся строки, в которых буквы идут одинаково. Никто не знает, почему это так. Он называет такие строки плохими. Итак, хорошие строки — это строки, в которых буквы идут не одинаково. Теперь задача довольно проста. Имея строку S, нам нужно преобразовать ее в хорошую строку.

Нам просто нужно выполнить одну операцию — если есть две одинаковые последовательные буквы, удалить одну из них.

2. Программа Java с использованием Regex

Использование регулярных выражений может быть хорошим решением этой проблемы. Я написал простую программу на Java для ее решения. Она использует регулярное выражение '(?i)(\\p{L})\\1'. Оно сопоставляет две последовательные кодовые точки(символы) без учета регистра. Затем оно заменяет группу на кодовую точку, для которой появились два последовательных символа.

Пожалуйста, не стесняйтесь изменять регулярное выражение в соответствии с требованиями.

String badString = "Good Oops, Bad Oops";String goodString = input.replaceAll("(?i)(\\p{L})\\1", "$1");System.out.println(output);

Вывод программы:

 Божественные операции, плохие операции 

Исходный код на Github

Прокрутить вверх