C++ и Java ограничение по времени на тест 2 секунды
ограничение по памяти на тест 64 мегабайта
ввод стандартный ввод
вывод стандартный вывод
Некоторые студенты предпочитают использовать при решении задач практики язык программирования C++, некоторые — язык программирования Java. И у того, и у другого имеются как преимущества, так и недостатки. Если не удаётся составить решение на одном языке, в отдельных случаях имеет смысл попробовать использовать другой.
Макс сейчас занят как раз тем, что переписывает собственное решение на другой язык. Несмотря на то, что синтаксис двух языков очень похож, Макс старается учитывать традиции и стиль конкретного языка.
Например, для именования переменных в C++ используется следующее соглашение: идентификатор записывается только строчными буквами, отдельные слова в составе идентификатора разделяются символом подчёркивания. Примерами идентификаторов языка C++ являются «selection_sort», «key_value_pair» и «max_f_p_s».
Для именования переменных в Java используется так называемый «camelCase»: отдельные слова в составе идентификатора записываются слитно, первые буквы всех слов кроме начального являются заглавными. Примерами идентификаторов языка Java являются «selectionSort», «keyValuePair» и «maxFPS».
В коде Макса множество переменных, и он часто делает ошибки при переименовании ему правильно изменить имя переменной.
Входные данные
Ввод содержит строку S (1 ≤ |S| ≤ 100) — имя переменной. Гарантируется, что строка S является корректным идентификатором в рамках рассматриваемых стилей.
Выходные данные
Если имя переменной соответствует стилю C++, выведите его аналог для стиля Java. Если имя переменной соответствует стилю Java, выведите его аналог для стиля C++.
Если вариантов ответа несколько, выведите любой.
Примеры
входные данные
selection_sort
выходные данные
selectionSort
входные данные
keyValuePair
выходные данные
key_value_pair
Языки
C++ (Visual C++ 2010)
C# .NET (Visual C# 2010)
Pascal (Free Pascal 3.0.0)
Pascal (PascalABC.NET 3.2)
Python (Python 3.2.5)
Java (Java Development Kit 1.7)
Я так понимаю, предполагается, что мы переводим из С++ в Java и наоборот. Или от незаконченного перевода куда-нибудь на оба языка.
Таким образом, на вход могут подаваться как key_value_pair или keyValuePair, так и, например, key_value_Pair.
Pytuhon 3
Код:
import refrom functools import reducevariable_name = input()to_cpp_translation = re.match(r".*[A-Z].*", variable_name) is not Noneto_java_translation = re.match(r".*_.*", variable_name) is not Nonewords = re.findall(r"_?([A-Z]?[a-z]+)_?", variable_name)if to_cpp_translation: print("_".join(words).lower())if to_java_translation: print(reduce(lambda s, a: s + a.capitalize(), words))