просьба ногами не бить, а если и бить, то не больно. и не всем сразу, а по очереди.
знаю, что вы мы ищем тестовые задания, которые можно написать минут за полчаса и которые определяют профпригодность кандидата, причем покрывают широкий профиль общих вопросов и при этом не приводятся в качестве примеров наглядной агитации в каждом втором букваре.
вот тут жизнь подкинула интересную тему, сносящую крышу и отсутствующую в гугле. захотелось найти средство для замены пробелов в скриптах на питоне на символы табуляции. вопрос задавался 100500 раз, но каждый раз на него давались ответы в стиле "emacs это не только ценный мех" или "в vim'е это делается одним жестом руки" и предлагалось заменять четыре (!) пробела одним символом табуляции.
что за бред?! в питоне не настолько жестко специфицированная система отступов. не обязательно четыре. если текущий уровень вложенности имеет M отступов, то следующий уровень вложенности N, где M < N, а вот для выхода из N нужно отступить на M пробелов. кстати, в руководстве на питон это доходчиво описано и даже даются подсказки как реализовать парсер.
впрочем, тут не обходится без подводных камней, на которых обламывается даже плагин colorer для FAR'а, который воспринимает """ xxxx \"""" как комментарий, забывая о том, что '\"' обрабатывается особым образом.
короче, предлагаю кандидату (особенно на роль сеньора) написать скрипт, заменяющий пробелы символами табуляции (и, в качестве бонуса, обрабатывающий скрипты где есть и то, и другое), а затем проверить его программу на следующем примере. если она не развалится, то смело можно брать:
# http://docs.python.org/reference/lexical_analysis.html
def perm(l):
# Compute the list of all permutations of l
if len(l) <= 1:
return [l]
r = []
for i in range(len(l)):
s = l[:i] + l[i + 1:]
p = perm(s)
""" hello, world !
of rasta/ \"""
"""
for x in p:
r.append(l[i : i + 1] + x)
if 1 == 1:
if 6 == 999:
if 9 == 666: pass
return r
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.