Предмет: Информатика,
автор: instant99
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)
vovapecherscky:
не получается, почему-то, ответить
#include
Ответы
Автор ответа:
1
Я так понимаю, предполагается, что мы переводим из С++ в Java и наоборот. Или от незаконченного перевода куда-нибудь на оба языка.
Таким образом, на вход могут подаваться как key_value_pair или keyValuePair, так и, например, key_value_Pair.
Pytuhon 3
Код:
- import re
- from functools import reduce
- variable_name = input()
- to_cpp_translation = re.match(r".*[A-Z].*", variable_name) is not None
- to_java_translation = re.match(r".*_.*", variable_name) is not None
- words = 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))
Приложения:
Похожие вопросы
Предмет: Українська мова,
автор: vivashchienko
Предмет: Английский язык,
автор: 18Божинская
Предмет: Русский язык,
автор: ляля85
Предмет: Физика,
автор: dimalol1441
Предмет: Геометрия,
автор: Klgig