zoukankan      html  css  js  c++  java
  • pythontip 挑战python 21-30 题解

    入门题的解答过程,有更好的解题方法或者编码方法请留言

    有部分内容参考了:[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'
  • 相关阅读:
    构造回文的最小插入次数
    动态规划设计:最大子数组
    状态压缩:对动态规划进行降维打击
    团灭 LeetCode 股票买卖问题
    经典动态规划:戳气球
    贪心算法之区间调度问题
    微信分享 添加URL Schemes
    UITouch的用法
    HTTP协议详解
    经典SQL语句大全
  • 原文地址:https://www.cnblogs.com/zijin/p/3492568.html
Copyright © 2011-2022 走看看