第11题:
找出20*20方阵中,在同一直线或斜线上相邻4数之积的最大者.
- d = []
- for i in xrange(20):
- d.append( [ int(j) for j in s.splitlines()[i].split() ] )
- print d
- first = 0
- for i in xrange(20):
- for j in xrange(20):
- try:
- tmp1 = d[i][j]*d[i][j+1]*d[i][j+2]*d[i][j+3]
- except:
- tmp1 = 0
- try:
- tmp2 = d[i][j]*d[i+1][j+1]*d[i+2][j+2]*d[i+3][j+3]
- except:
- tmp2 = 0
- try:
- tmp3 = d[i][j]*d[i+1][j-1]*d[i+2][j-2]*d[i+3][j-3]
- except:
- tmp3 = 0
- try:
- tmp4 = d[i][j]*d[i+1][j]*d[i+2][j]*d[i+3][j]
- except:
- tmp4 = 0
- t = max(tmp1,tmp2,tmp3,tmp4)
- if t > first :
- first = t
- print first
用try来跳过边界检测,会在执行次数上有一定的浪费.