Автор оригинала: Robin Andrews.
HackeRrank Это сайт, в котором вы можете проверить навыки программирования Python, основные данные структур и алгоритмов и алгоритмов, а также выделяются потенциальными работодателями, решение проблем рядом с программистами со всего мира. Он также используется рекрутерами для оценки способностей потенциальных сотрудников.
Если вы изучаете Python, который является основным направлением в фокусе этого блога, вы найдете огромное количество материалов, чтобы помочь вам развить свои навыки. Однако Python ни в коем случае не единственный язык. Например, вы можете использовать HackeRrank для практики
- C, C ++, Java, C #, Python, PHP, Ruby, Go и Swift
- Базы данных/SQL
- машинное обучение
- regex.
- Отдых APIS.
и больше.
Существует что-то сурмита, которая происходит вокруг того, любят ли люди или ненавидят хакерарь. (Если вы не живете в Великобритании, вы можете не получить эту ссылку – Marmite – это соленый дрожжевой экстракт, который некоторые люди находят вкусные, но которые превращают другие желудки.)
Вот некоторые из причин любви людей или ненавидят HackeRrank:
Причины люди любят HackeRrank
- Это дает объективную обратную связь о вашем уровне квалификации при решении определенных типов проблем
- Это дает возможность развить свои навыки в нескольких областях программирования
- Сообщество и обсуждение различных подходов и понимания проблем
- Структурированное обучение с прогрессирующими сложными проблемами
- Развивайте свои навыки решения проблем
- Наборы вызовов доступны для фокусировки конкретных навыков
Причины, по которым люди ненавидят Хакерарь
- Проблемы могут быть трудно решить
- Описания иногда неясны или чрезмерно
- Виды вызовов вполне могут не отражать такие задачи, которые вы будете делать в работе в разработке
- Пользовательский интерфейс может быть запутанным
- Лучшие практики часто не используются E.g. Наимение функционирования аргументов
Остальная часть этой статьи для людей, которые хотят дать HackErrank попробую. В нем я помогу вам демистифицировать сайт и помочь вам начать с решение проблем.
Как решить проблему Python HackeRrank Challenge
Давайте посмотрим на вызов из Комплект для подготовки интервью Проблемы разминки: Повторная строка Отказ Большая часть решения проблем диссертаций способна расшифровать то, что вы должны делать, основанные на описании проблемы. Это ни в коем случае не всегда легко, и вам, вероятно, понадобится выполнить несколько проблем, чтобы добраться до точки, где описания проблем не делают больной мозг. Вот экран захвата повторяющейся строки. Не будь ухоженным, если это выглядит запутанным – я объясню это дальше.
Хорошо, это может выглядеть как Gobletegook, поэтому позвольте мне упростить для вас вещей. Идея в том, что, учитывая строку, как ABC Вам нужно отработать, сколько раз буквы А появится в строке, если бы она повторилась до тех пор, пока она не была данной длины.
Смущенный?
Скажи, что у вас есть строка ABC и длина дана 10 Отказ Полная строка станет Abcabcabca , (повторяя abc до тех пор, пока у нас есть 10 символов), а количество А S в результирующей строке 4 Отказ
Одно следует отметить, что первоначальный шаблон, предоставляемый HackeRrank, может содержать некоторый очень запутанный код вместе с определением пустой функции. То, что вы должны понимать, это то, что этот код необходим платформой для проверки вашего кода. На самом деле вам не нужно понимать, как это работает, но вместо этого следует просто сосредоточиться на конкурентах определения функции. К которому я имею в виду, игнорировать этот бит:
if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')
s = input()
n = int(input())
result = repeatedString(s, n)
fptr.write(str(result) + '\n')
fptr.close()
Как тесты работают в HackeRrank Challenges
Фундаментальная концепция, которую вы должны понимать при попытке вызовов HackeRrank это Тесты Отказ Когда вы отправляете свой код, он будет запущен с количеством различных входов, а результаты по сравнению с ожидаемыми (правильными) результатами. Ваш код должен будет пройти все тесты, чтобы вы успешно завершить проблему.
Иногда ваш код пройдет некоторые тесты, но не все их. Затем у вас есть возможность «покупки» доступа к неудачным тестам, использующим «Hakos» – это виртуальные кредиты, заработанные путем решения проблем.
Вы можете запустить код со своим собственным входом, используя форму, показанную ниже.
Один полезный совет – это когда вы думаете, что у вас есть рабочее решение, для вставки в входе образца приведено в описании проблемы, чтобы увидеть, дает ли ваше решение ожидаемого результата. Это даст вам первоначальное указание о том, находится ли ваш код «в правом парке шара».
Вы можете получить сообщение об ошибке, что полезно для отладки вашего кода, и вы также можете использовать Печать Заявления, чтобы увидеть значения переменных во время выполнения вашего кода, и вывод будет отображаться при запуске …
Первоначальная попытка повторной строки HackeRrank повторной строки – проблема с памятью
Alert Spoiler: попробуйте проблему для себя, прежде чем чтение, чтобы получить наибольшее обучение из этой статьи.
Если вы очень новичок в программировании, вам может потребоваться потратить немного времени в другом месте, чтобы получить прошлый уровень начинающих. Одна вещь, которая делает проблемы на HackeRrank хорошо, сложно, это то, что часто не достаточно, чтобы просто написать правильное решение. Кроме того, вполне могут быть ограничения с точки зрения скорости выполнения и требований к памяти. Именно здесь входит ваше знание алгоритмической эффективности, или если у вас нет этих знаний, где вы получаете возможность погрузиться в эту увлекательную тему.
Вот моя первоначальная попытка решения проблем с повторной струной HackeRrank.
def repeatedString(s, n):
long_string = s * (n // len(s))
num_extra_chars = n - len(long_string)
long_string += s[:num_extra_chars]
return long_string.count("a")
Примечание: s [: num_extra_chars] означает «срезать строку с начала до положения num_extra_chars. .
Можете ли вы увидеть, что было мое мышление? Я создал полную версию повторной строки в надежде, что затем считая количество А с. К сожалению, некоторые тесты включали очень большое значение для N что означало, что имеется недостаточная память. Я должен был переосмыслить мой подход.
Повторная строковая проблема разминки
Вот мое рабочее решение для повторной струны разминки Hackerrank Challenge в Python
def repeatedString(s, n):
repeating_section_length = len(s)
full_repetitions = n // repeating_section_length
partial_result = s.count("a") * full_repetitions
num_extra_chars = s[: n % repeating_section_length].count("a")
return partial_result + num_extra_chars
Ключ здесь должен был избежать на самом деле создания полной строки длины N , но вместо этого использовать мощные Оператор по модулю ( % ) вместо этого выполнить расчет.
В этой статье мы исследовали, что такое HackeRrank и как подойдет к проблемам программирования, доступных там. Я надеюсь, что вы нашли это полезно. Пожалуйста, не стесняйтесь комментировать ниже и поделитесь своим опытом работы с HackeRrank.
Счастливые вычисления!