zoukankan      html  css  js  c++  java
  • PythonTip(2)

    结尾0的个数 

    描述:

    给你一个正整数列表 L, 输出L内所有数字的乘积末尾0的个数。(提示:不要直接相乘,数字很多,相乘得到的结果可能会很大)。

    例如: L=[2,8,3,50],

    则输出:2

    n = len(L)
    x = 1
    ans = 0
    
    def calc(x):
        ret = 0
        while True:
            if x%10==0:
                ret +=1
                x /=10
            else: break
        return [ret,x]
    
    
    for i in range(0,n):
        x = x*L[i]
        ret = calc(x)
        ans += ret[0]
        x = ret[1]
    print ans

    结尾非零数的奇偶性 

    描述:

    给你一个正整数列表 L, 判断列表内所有数字乘积的最后一个非零数字的奇偶性。如果为奇数输出1,偶数则输出0.。

    例如:L=[2,8,3,50]

    则输出:0

    n = len(L)
    x = 1
    ans = 0
    
    def calc(x):
        while True:
            if x%10==0:
                x /=10
            else: break
        return x%10
    
    
    for i in range(0,n):
        x = x*L[i]
        x = calc(x)
    
    if x&1:
        print 1
    else:
        print 0

    光棍的悲伤 

    描述:

    光棍们对1总是那么敏感,因此每年的11.11被戏称为光棍节。小Py光棍几十载,光棍自有光棍的快乐。让我们勇敢地面对光棍的身份吧,现在就证明自己:给你一个整数a,数出a在二进制表示下1的个数,并输出。

    例如:a=7

    则输出:3

    ans = 0
    while a!=0:
        if a%2==1:
            ans+=1
        a/=2
    print ans

    Python之美 

    描述:

    输出Python之禅。

    注意:输出python之禅的源码即可,不要转换为英文。(小小的提示:print this.s)

    import this
    print(this.s)

    大小写转换 

    描述:

    给定一个字符串a, 将a中的大写字母 转换成小写,其它字符不变,并输出。

    例如:a="aaaaaabbbDDDDD"

    则输出:aaaaaabbbddddd

    n = len(a)
    b = list(a)
    
    for i in range(0,n):
        if ord(b[i])>=65 and ord(b[i])<=90:
            b[i] = chr(ord(b[i])+32)
    print "".join(b)

    公约数的个数 

    描述:

    给你两个正整数a,b, 输出它们公约数的个数。

    例如:a = 24, b = 36

    则输出:6

    ans = 0
    for i in range(1,min(a,b)+1):
        if a%i==0 and b%i==0:
            ans+=1
    print ans

    逆解最大公约数与最小公倍数 

    描述:

    我们经常遇到的问题是给你两个数,要你求最大公约数和最小公倍数。今天我们反其道而行之,给你两个数a和b,计算出它们分别是哪两个数的最大公约数和最小公倍数。输出这两个数,小的在前,大的在后,以空格隔开。若有多组解,输出它们之和最小的那组。注:所给数据都有解,不用考虑无解的情况。

    例如:a=3, b = 60

    则输出:12 15

    gcd = min(a,b)
    lcm = max(a,b)
    
    ans = 1000000000
    F1 = -1
    F2 = -1
    for i in range(gcd,a*b+1):
        if a*b%i==0 and ans > i + a*b/i:
            F1 = min(i,a*b/i)
            F2 = max(i,a*b/i)
            ans = i + a*b/i
    
    print('{0} {1}'.format(str(F1),str(F2)))

    单身情歌 

    描述:

    抓不住爱情的我 总是眼睁睁看它溜走 ...现在来练习一下发现爱的能力,给你一个字符串a,如果其中包含"LOVE"(love不区分大小写)则输出LOVE,否则输出SINGLE。

    例如:a = "OurWorldIsFullOfLOVE"

    则输出:LOVE

    a = a.lower()
    
    n = len(a)
    
    flag = False
    for i in range(0,n):
        if a[i] == 'l' and a[i+1] == 'o' and a[i+2]=='v' and a[i+3]=='e':
            flag = True
            break
    if flag:
        print 'LOVE'
    else:
        print 'SINGLE'

    信息加密 

    描述:

    给你个小写英文字符串a和一个非负数b(0<=b<26), 将a中的每个小写字符替换成字母表中比它大b的字母。这里将字母表的z和a相连,如果超过了z就回到了a。

    例如a="cagy", b=3, 

    则输出 :fdjb

    L = list(a)
    n = len(a)
    ans = []
    
    for i in range(n):
        x = ord(L[i]) + b
        if x > 122:
            ans.append(chr(ord('a')+x-ord('z')-1))
        else:
            ans.append(chr(x))
    print "".join(ans)
  • 相关阅读:
    linux signal 处理
    AssetManager asset的使用
    分治法-汉诺塔问题
    WebSocket初探
    分治策略结合递归思想求最大子序列和
    数据库索引的作用和长处缺点
    Android Service 服务(一)—— Service
    YouTube为什么打不开?以及简便的訪问的方法/解决方式!
    winzip15.0注冊码
    CodeForces 398B 概率DP 记忆化搜索
  • 原文地址:https://www.cnblogs.com/TreeDream/p/8385456.html
Copyright © 2011-2022 走看看