淡淡回忆 发表于 2015-4-21 11:10:30

一人一python挑战题解

  
  题目id: 1 just print a+b
  give you two var a and b, print the value of a+b, just do it!!



print a+b
  题目id:2 list排序
  给你一个list L, 如 L=, 对L进行升序排序并输出



print sorted(L)
  题目id: 3字符串逆序
  给你一个字符串 a, 如a=‘12345’,对a进行逆序输出a。



print a[::-1]
  题目id:4   输出字典key
  给你一字典a,如a={1:1,2:2,3:3},输出字典a的key,以','链接,如‘1,2,3'。



print ','.join(a.keys())
  
  题目id:5输出字符奇数位置的字符串
  给你一个字符串 a, 输出字符奇数位置的字符串。如a=‘12345’,则输出135。



str1=''
for i in range(len(a)):
if i%2==0:
str1 += str(a)
print str1
  
  题目id:6求解100以内的所有素数
  输出100以内的所有素数,素数之间以一个空格区分



import math
def isPrime(n):
if n= twoNum else 0)
  题目id:13光棍的悲伤
  给你一个整数a,数出a在二进制表示下1的个数,并输出。



cnt = 0
while a:
cnt += a&1
a >>= 1
print cnt
  题目id:14Python之美
  输出Python之禅
注意:输出python之禅的源码即可,不用转换为英文。



import this
print this.s
  题目id:15大小写转换
  给定一个字符串a, 将a中的大写字母 转换成小写,其它字符不变,并输出。



print a.lower()
  题目id:16 人民币金额打印
  银行在打印票据的时候,常常需要将阿拉伯数字表示的人民币金额转换为大写表示,现在请你来完成这样一个程序。
在中文大写方式中,0到10以及100、1000、10000被依次表示为:
    零壹贰叁肆伍陆柒捌玖拾佰仟万
以下的例子示范了阿拉伯数字到人民币大写的转换规则:
  1壹圆
11壹拾壹圆
111壹佰壹拾壹圆
101壹佰零壹圆
-1000负壹仟圆
1234567壹佰贰拾叁万肆仟伍佰陆拾柒圆
  现在给你一个整数a(|a|= 10000:
transferMoney(b/10000,s,True)
if a < 0:
s.append('负')
print "".join(s[::-1])
  题目id:17 公约数的个数
  给你两个正整数a,b,输出它们公约数的个数。



def gcd(a,b):
if a < b:
a,b = b,a
while b:
a,b = b,a%b
return a
cnt = 1
for i in range(1,gcd(a,b)):
if a%i == 0 and b%i ==0:
cnt +=1
print cnt
  题目id:18    逆解最大公约数与最小公倍数
  我们经常遇到的问题是给你两个数,要你求最大公约数和最小公倍数。
今天我们反其道而行之,给你两个数a和b,计算出它们分别是哪两个数的最大公约数和最小公倍数。
输出这两个数,小的在前,大的在后,以空格隔开。若有多组解,输出它们之和最小的那组。



import sys
def gcd(a,b):
if a < b:
a,b = b,a
while b:
a,b = b,a%b
return a
c= b/a+1
minv,mina,minb= sys.maxint,0,0
for i in range(1,c):
for j in range(i,c):
if gcd(i,j) == 1 and a*i*j == b:
if minv > (a*i+a*j):
minv,mina,minb = (a*i+a*j),a*i,a*j
print '%d %d'%(mina,minb)
  题目id:19单身情歌
  抓不住爱情的我
总是眼睁睁看它溜走
...
  现在来练习一下发现爱的能力,给你一个字符串a,如果其中包含"LOVE"(love不区分大小写)则输出LOVE,否则输出SINGLE。



print ("LOVE" if "love" in a.lower() else "SINGLE" )
  题目id:20 信息加密
  给你个小写英文字符串a和一个非负数b(0h:
cnt += 1
print cnt
  题目id:32  三角形形状
  给以一个三角形的三边长a,b和c(边长是浮点数),请你判断三角形的形状。
若是锐角三角形,输出R,
若是直角三角形,输出Z,
若是钝角三角形,输出D,
若三边长不能构成三角形,输出W.



d=
d.sort()
if d+d > d and abs(d-d) < d:
if d**2+d**2 == d**2:
print 'Z'
elif d**2+d**2 >d**2:
print 'R'
else:
print 'D'
else:
print 'W'
  题目id:33  大幂次运算
  给你两个正整数a(0 < a < 100000)和n(0 = 2:
dp=,max(L,L)]
for i in range(2,len(L)):
dp.append(max(dp,max(L+dp,L)))
print dp
else:
print L
  题目id:37  简单题之勾股定理
  给你直角三角形的两个直角边的边长a,b,请你求出其斜边边长,结果保留小数点后三位小数。
  如a=3, b =4, 则输出5.000。



import math
print "%.3f"%math.sqrt(a**2+b**2)
  题目id:38  简单题之列表转换
  给你一个字符串列表L,请用一行代码将列表所有元素拼接成一个字符串并输出。
如L=['abc','d','efg'], 则输出abcdefg。



print ''.join(L)
  题目id:39  简单题之输出格式练习
  给你一个字符串列表L,用一行代码顺序输出L中的元素,元素之间以一个空格隔开,注意行尾不要有空格,输出单独占一行。
  如L=['abc','d','efg'], 则输出abc d efg。



print ' '.join(L)
  题目id:40  整数解
  给你两个整数a和b(-10000
页: [1]
查看完整版本: 一人一python挑战题解