0. 2 to the power of 38.
1. Translate the string by replace every letter with letter position 2 after. Notice the 'z' should translates to 'b'.
text = "g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle. sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu ynnjw ml rfc spj." result = ''; for c in text: if 'a' <= c <= 'z': result += chr((ord(c) - ord('a') + 2) % 26 + ord('a')) elif 'A' <= c <= 'Z': result += chr((ord(c) - ord('A') + 2) % 26 + ord('A')) else: result += c print result2. Find the hidden word from string
text='.. text from html source..' chList = {} for ch in text: if ch in chList.keys(): chList[ch] = chList[ch] + 1 else: chList[ch] = 1 print chList #a,e,i,l,q,u,t,y = 1 for ch in text: if ch in 'aeilquty': print ch #equality3. Find the hidden word by using regex
text='.. text from html source..' pattern = "[a-z][A-Z]{3}[a-z][A-Z]{3}[a-z]" m = re.findall(pattern, text) result = "" for str in m: result += str[4] print result
4. Send http request and parse the returning string
import urllib2 import re link = urllib2.urlopen("http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing=12345") while link.getcode() == 200: #get another nothing code text = link.read() print text pattern = "the next nothing is [0-9]+" m = re.search(pattern,text) if m: tmp = m.group() pattern2 = "[0-9]+" m = re.search(pattern2, tmp) code = m.group() else: code = str(int(code) / 2) url = "http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing=" + code link = urllib2.urlopen(url)
5. 'Peak Hell' implies 'pickle', format the string, you will see the result
from __future__ import print_function import pickle import urllib2 import sys text = urllib2.urlopen("http://www.pythonchallenge.com/pc/def/banner.p").read() result = pickle.loads(text) for arr in result: for tuple in arr: print(tuple[0]*tuple[1], end='') print('\n')