War game/pythonchallenge
pythonchallenge level3
badcob
2009. 8. 19. 20:22
http://www.pythonchallenge.com/pc/def/equality.html
3번문제의 힌트는 아래와 같다. 소스를 살펴보면 level2 와 비슷하게 매우 긴 문자열을 볼 수 있다.
One small letter, surrounded by EXACTLY three big bodyguards on each of its sides
글자 그대로 해석하면 원하는 문자열은 XXXxXXX 형태일 것이다. Forum에 올라온 힌트는 정규식을 이용
하라고 나와있다. 가깝고도 먼 그대.. 정규표현식T_T
[A-Z]{3}[a-z][A-Z]{3} 요런식으로 만들어서 매칭시켜보니 무려 477개나 되는 문자가
발견되었다. 힌트를 곰곰히 읽어보니 Exactly 가 유독 대문자로 써 있다. 이말은 대문자의 갯수가 정확히
3개 여야 한다는 뜻이다. 따라서 xXXXxXXXx 요런 형태로 다시 찾아보았다.
import re str = """ .......................""" keyword = re.findall("[a-z][A-Z]{3}[a-z][A-Z]{3}[a-z]",str) i = 0 word = '' temp = '' length = len(keyword) while 1: temp = keyword[i] word += temp[4] i+=1 if i == length: break print word
위의 코드를 실행하면 최종 문자열로 linkedlist 가 찍힌다.
http://www.pythonchallenge.com/pc/def/linkedlist.html