您的位置:首页 > 编程语言 > Python开发

PAT basic1016-1020(Python版)

2014-11-09 14:55 323 查看
Python2环境:

1016:

from sys import exit
str = raw_input().split()
sum = 0
if str[0].count(str[1]) != 0:
sum += int(str[0].count(str[1]) * str[1])

if str[2].count(str[3]) != 0:
sum += int(str[2].count(str[3]) * str[3])

print sum
exit(0)


1017:

from sys import exit
str = raw_input().split()
a = str[0]
b = int(str[1])
add = 0
shang = ''

for i in a:
shang += '%d' % ( (int(i)+add*10) / b )
add = (int(i)+add*10) % b

shang = shang.lstrip('0')
if shang == '':
shang = '0'
print shang, add
exit(0)


1018:

from sys import exit

def output_popular( dict ):
popular = ''
num = 0
for i in dict.keys():
if popular == '' or dict[i] > num or (dict[i] == num and i < popular):
popular = i
num = dict[i]

return popular

dict_pri_jia = {'B C':0, 'B B':1, 'B J':2, 'C B':2, 'C C':1, 'C J':0, 'J B':0, 'J J':1, 'J C':2}
jia = [0, 0, 0, {'B':0, 'C':0, 'J':0}]
yi = [0, 0, 0, {'B':0, 'C':0, 'J':0}]

num = input()
for i in range(num):
str = raw_input()

jia[dict_pri_jia[str]] += 1
yi[2-dict_pri_jia[str]] += 1

if dict_pri_jia[str] == 0:
jia[3][str[0]] += 1

if dict_pri_jia[str] == 2:
yi[3][str[2]] += 1

print jia[0], jia[1], jia[2]
print yi[0], yi[1], yi[2]
print output_popular(jia[3]), output_popular(yi[3])

exit(0)


也有个case超时,数据量太大就超时。。

1019:

from sys import exit

str = raw_input()
str = (4-len(str))*'0' + str
strList = sorted(str)

while strList.count(str[0]) != 4:
strList = sorted(str)
small = ''
big = ''
res = ''
for i in range(4):
small += strList[i]

strList.reverse()
for i in range(4):
big += strList[i]

str = '%04d' % (int(big)-int(small))
print '%s - %s = %s' % (big, small, str)

if str == '6174':
break

if strList.count(str[0]) == 4:
print '%s - %s = 0000' % (str, str)

exit(0)


1020:

from sys import exit

str = raw_input().split()
mkNum = int(str[0])
total = int(str[1])
para = []
para.append(raw_input().split())
para.append(raw_input().split())

for i in range(mkNum):
para[0][i] = float(para[0][i])
para[1][i] = float(para[1][i])

dict = {}
for i in range(mkNum):
if (float(para[1][i]) / para[0][i]) in dict.keys():
dict[float(para[1][i]) / para[0][i]][0] += para[1][i]
dict[float(para[1][i]) / para[0][i]][1] += para[0][i]
else:
dict[float(para[1][i]) / para[0][i]] = [para[1][i], para[0][i]]

mkeys = dict.keys()
mkeys.sort()
mkeys.reverse()
value = 0.0

for i in mkeys:
if total > dict[i][1]:
value += dict[i][0]
total -= dict[i][1]
else:
value += float(dict[i][0]) / dict[i][1] * total
break

print '%.2f' % value

exit(0)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: