入门题的解答过程,有更好的解题方法或者编码方法请留言
有部分内容参考了:[1]http://www.cnblogs.com/xiongqiangcs/p/3416072.html
和[2]http://www.cnblogs.com/easymath3/p/3468800.html
21:回文子串
for i in range(len(a) - n+1): if a[i: i+n/2 :1] == a[i+n-1: i+n-n/2-1:-1]: print 'YES' break else: print 'NO'
22:时间就是金钱
stL = map(int, st.split(':')) stN = stL[0]*3600 + stL[1]*60 + stL[2] etL = map(int, et.split(':')) etN = etL[0]*3600 + etL[1]*60 + etL[2] print etN - stN
23:365 Or 366?
y = int(year) if y%4==0 and y%100!=0 or y%400==0: print 366 else: print 365
24:一马当先
我用的宽度优先的搜索方法
step = ((2,1),(1,2),(-1,2),(-2,1),(-2,-1),(-1,-2),(1,-2),(2,-1)) isVisit = [[False]*(m+1) for i in range(n+1)] isVisit[0][0] = True visit= [(0,0)] def wfs(): minCnt = 0 while len(visit) != 0: l = len(visit) minCnt += 1 for i in range(l): a,b = visit.pop(0) for p in step: tmpa,tmpb = a+p[0], b+p[1] #print tmpa, tmpb if tmpa == n and tmpb ==m: return minCnt if tmpa >-1 and tmpa <=n and tmpb > -1 and tmpb <= m and not isVisit[tmpa][tmpb]: isVisit[tmpa][tmpb] = True visit.append((tmpa,tmpb)) #print visit else: return -1 print wfs()
25:格式化时间
print '%04d-%02d-%02d %02d:%02d:%02d' % (int(t['year']),int(t['month']),int(t['day']),int(t['hour']),int(t['minute']),int (t['second']))
26:序列判断
up = sorted(L) down = up[::-1] if up == L: print 'UP' elif down == L: print 'DOWN' else: print 'WRONG'
27:加油站
for i in range(n): oil, coil = 0, 0 for j in range(n): t = (i+j)%n oil = oil + limit[t] - cost[t] if oil < 0: break else: print i break else: print -1
28:相同数字
这个答案是参考的别人的,我觉得挺巧妙的,就抄来了,见:http://www.cnblogs.com/xiongqiangcs/p/3416072.html
print ('NO' if len(set(L)) == len(L) else 'YES')
29:判断三角形
if a+b>c and b+c>a and c+a>b: print 'YES' else: print 'NO'
30:National Day
print 'Happy'