Задача №3604. $v_<любой индекс>$
Построить пару reg. exp.-ов для замены фрагментов вида \(v_\) (где "
" — либо одна цифра или буква, либо последовательность букв и/или цифр, взятая в фигурные скобки) на v[тот же индекс]. Если букв и/или цифр много, а они не взяты в фигурные скобки, замену надо не делать.
«Честными» считаются только решения, использующие для каждой строки ровно одну регулярную замену. То есть, «сначала пройти по строке и позаменять только односимвольные индексы, а потом пройти по только что полученному результату ещё раз и позаменять только индексы, взятые в фигурные скобки» вообще-то является правильным решением, но именно здесь и сейчас считается читерством.
Рекомендуется решать задачу не «с нуля», а менять регулярные выражения (и только их) в следующей Java-программе:
import java.util.*;
import java.io.*;
public class Main {
// Изменять регулярное выражение здесь
static String regexp="a+b+c";
static String replacement="QQQ"; // и здесь
public static void main(String[] args) throws Exception{
Scanner in=new Scanner(System.in);
PrintWriter out=new PrintWriter(System.out);
String str;
while(in.hasNextLine() )
{
str=in.nextLine();
str=str.replaceAll(regexp, replacement);
out.println(str);
out.flush();
}
out.close();
}
}
Любой текст, состоящий из любого количества непустых строк. Все строки, включая последнюю, завершаются символом перевода строки. Все символы входного файла (кроме переводов строки) имеют ASCII-коды в диапазоне от 32 до 127.
Если отсылать указанную java-программу, меняя только регулярные выражения, об этом можно не беспокоиться — всё получится само.
Гарантируется, что во входных данных не будет фрагментов с непарными фигурными скобками внутри долларов (наподобие « \(v_{12}\) »). Но обратите внимание на последнее предложение в примере ввода/вывода.
Текст, состоящий из того же количества строк, но с выполненной заменой.
Если отсылать указанную java-программу, меняя только регулярные выражения, об этом можно не беспокоиться — всё получится само.
Не забывайте, что в джавовских строках (как и в сишных) бэкслэш имеет специальное значение, а чтобы ввести в джавовскую строку именно сам бэкслэш, его надо написать дважды. Например, если «любая цифра» обозначается в регулярном выражении как «\d», то в джавовской строке должно быть «\\d».
Vertex $v_1$ is isolated --- it's of degree 0. Vertice $v_2$, $v_{7}$ and $v_{12}$ are terminal --- each of them is of degree 1. Note that $v_1u$ actually means not $v_{1u}$ but ${v_1}u$, so $v_1u$ should NOT be changed to v[1u].
Vertex v[1] is isolated --- it's of degree 0. Vertice v[2], v[7] and v[12] are terminal --- each of them is of degree 1. Note that $v_1u$ actually means not v[1u] but ${v_1}u$, so $v_1u$ should NOT be changed to v[1u].