C++ и Java ограничение по времени ** тест 2 секундыограничение по памяти ** тест 64...

+919 голосов
2.8m просмотров

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)


Информатика (26 баллов) | 2.8m просмотров
+35

#include
#include

+55

я в шоке

+71

не получается, почему-то, ответить

Дан 1 ответ
+125 голосов

Я так понимаю, предполагается, что мы переводим из С++ в 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))

(7.0k баллов)