急!!一道IOI的python编程题,算法和实现最好都要~~

作者&投稿:边底 (若有异议请与网页底部的电邮联系)
python编程题!!!~

import redef check(a): p = r'ATG(.+?)(?:TAG|TAA|TGA)' result = [] include = ['ATG','TAG','TAA','TGA'] for r in re.findall(p,a): if len(r)%3 != 0: print('error') return for inc in include: if inc in r: print('error') return result.append(r) return resultr = check('TTATGTTTTAAGGATGGGGCGTTAGTT') print(r)本来是想一个正则就能解决,但是正则又要不包含又要固定3的倍数,于是写了函数,仅供参考

raw = raw_input("Please input raw data:")l = []for i in raw : l.append(str((int(i)+5)%10))l.reverse()result = ''for i in l: result +=iprint int(result)

楼上写得不错,特别是s和c的调换,运用得很巧妙。在这里我来讨论一下存在多个最大值的情况,如top_country([('C', 'Gold'), ('A', 'Gold'),('A', 'Silver'),('B', 'Bronze'),('C', 'Silver')]),这里C和A是一样的,正确的应该输出C,A。代码如下:

def top_country(m):
score = {}
medal_score = {'Gold' : 3, 'Silver' : 2, 'Bronze' : 1}
for country, medal in m:
score[country] = score[country] + medal_score[medal] if country in score else medal_score[medal]
max_medal = max((s, c) for c, s in score.items())
print max_medal[1],
score.pop(max_medal[1])
for c,s in score.items():
if s == max_medal[0]:
print c,

top_country([('C', 'Gold'), ('A', 'Bronze'), ('C', 'Silver')])

top_country([('C', 'Gold'), ('A', 'Gold'),('A', 'Silver'),('D', 'Gold'),('D', 'Silver'), ('B', 'Bronze'),('C', 'Silver')])

输出结果为:
C
D A C

PS:1.楼上的已经是正解,因为题目说了Assume there is a unique answer,也就是只考虑结果只有一个值的情况,我在这里只是拓展了一下,考虑了多个最大值。
2.因为这里不够宽,所以代码的第五行和最后一行太长了放不下,它就自动换行了,建议复制到自己的IDE去看,那样比较直观。

def top_country(l):
score = {}
medal_score = {'Gold' : 3, 'Silver' : 2, 'Bronze' : 1}
for country, medal in l:
if country not in score:
score[country] = medal_score[medal]
else:
score[country] += medal_score[medal]
return max([(s, c) for c, s in score.items()])[1]

print top_country([('C', 'Gold'), ('A', 'Bronze'), ('C', 'Silver')])


瘦脸型会改变吗?比如我是大饼脸,可以瘦成奶茶妹妹那种脸型吗?_百度...
OiLljLsifSx7ImNoYXIiOiLpmaIifSx7ImNoYXIiOiLvvJoifSx7ImNoYXIiOiLkvb8ifSx7ImNoYXIiOiLnlKgifSx7ImNoYXIiOiJIIn0seyJjaGFyIjoiSSJ9LHsiY2hhciI6IkcifSx7ImNoYXIiOiJIIn0seyJjaGFyIjoiLSJ9LHsiY2hhciI6IkwifSx7ImNoYXIiOiLpq5gifSx7ImNoYXIiOiLkvY0ifSx7ImNoYXIiOiLmiKoifSx7ImNoYXIiOiLpqqgifSx7ImNoYXIiOiLvvI...

荣威鲸4季度上市 首搭斑马智行天瀑AI平台
W3siYmxvY2tJZCI6Ijc0NzQtMTYyNTk5MTM0ODk3MiIsImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJiYWNrLWNvbG9yIjoiIiwiYWxpZ24iOiJsZWZ0IiwiaW5kZW50IjowLCJ0ZXh0LWluZGVudCI6MCwibGluZS1oZWlnaHQiOjEuNzUsInBhZGRpbmciOiIifSwidHlwZSI6InBhcmFncmFwaCIsInJpY2hUZXh0Ijp7ImRhdGEiOlt7ImNoYXIiO...

编程! 方块消除问题 动态规划
d,i,j,k,p,t :longint;begin for d:=1 to m-1 do for i:=1 to m-d do begin j:=i+d;for k:=0 to rest[j] do begin max[i,j,k]:=max[i,j-1,0]+sqr(len[j]+k);p:=prev[j];while p>=i do begin t:=max[i,p,len[j]+k]+max[p+1,j-1,0];if t>...

我的颧骨高怎么办
XIiOiLpnaIifSx7ImNoYXIiOiLpg70ifSx7ImNoYXIiOiLog70ifSx7ImNoYXIiOiLlsIYifSx7ImNoYXIiOiLpoqcifSx7ImNoYXIiOiLpqqgifSx7ImNoYXIiOiLnmoQifSx7ImNoYXIiOiLpq5gifSx7ImNoYXIiOiLluqYifSx7ImNoYXIiOiLnmoQifSx7ImNoYXIiOiLlvpcifSx7ImNoYXIiOiLliLAifSx7ImNoYXIiOiLkuIAifSx7ImNoYXIiOiLkuKoifSx7ImNoYXIiOiLmmI4ifS...

双眼皮的宽度,大小该如何选择
<p>答:虽然双眼皮的风向变一直在变化,但是双眼皮的宽度与一个人的脸型、上皮的宽窄、眼窝的深浅、上睑厚薄等因素来定,不能盲目整形。<\/p><p>比如,一个人的面形大丰满,上眼皮的距离较宽,眼窝较深,双眼皮则可以做宽些。反之,则应该做得窄一些。<\/p><p>较宽的双眼皮是指1cm以上的双眼皮,网红双眼皮一般...

我的眼皮一单一双,后来另一个变成了双眼皮了,怎么办
XIiOiLku6UifSx7ImNoYXIiOiLngrkifSx7ImNoYXIiOiLlh7sifSx7ImNoYXIiOiLkuIsifSx7ImNoYXIiOiLlm74ifSx7ImNoYXIiOiLor6YifSx7ImNoYXIiOiLnu4YifSx7ImNoYXIiOiLkuoYifSx7ImNoYXIiOiLop6MifSx7ImNoYXIiOiLjgIIifV0sImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWV9fV0=--><\/p><p style=\\"text-align: ...

颧骨太突出怎么办
XIiOiLlsLEifSx7ImNoYXIiOiLmlLkifSx7ImNoYXIiOiLlj5gifSx7ImNoYXIiOiLpoqcifSx7ImNoYXIiOiLpqqgifSx7ImNoYXIiOiLnmoQifSx7ImNoYXIiOiLnqoEifSx7ImNoYXIiOiLlh7oifSx7ImNoYXIiOiLpoqcifSx7ImNoYXIiOiLlvJMifSx7ImNoYXIiOiLnmoQifSx7ImNoYXIiOiLlrr0ifSx7ImNoYXIiOiLlpKcifSx7ImNoYXIiOiLvvIwifSx7ImNoYXIiOiLkuLsifSx7I...

游戏《我的世界》手机版里怎么得到头颅
YyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90..."p19+tj7CgYGhHox4rz7OXyLA9uiF770W19RrRuMu0ZJhL476U68H82A1Ic07gf93ipxNxkzXUHTlDUsi\/\/K1

已知,平行四边形ABCD中,AB=5,AD=2,∠DAB=120°,若以点A为原点,直线AB...
B(5,0) C(4,3^0.5) D(-1,3^0.5)

脸上有个疤,是跌倒的后摔的,怎么祛疤
<\/p><p>注射术法:通过对疤痕皮肤处注射透明质酸+二氧化碳来激发真皮组织修复能力。<\/p><p>切除法:就是切除疤痕组织,然后缝合皮肤缝合使疤痕减小。待...fSx7ImNoYXIiOiLor7cifSx7ImNoYXIiOiLpl64ifSx7ImNoYXIiOiLkvaAifSx7ImNoYXIiOiLnjrAifSx7ImNoYXIiOiLlnKgifSx7ImNoYXIiOiLnmoQifSx7ImNoYXIiOiLnlqQifS...

博爱县19455573606: 输入一个十进制数,输出一个二进制串,怎么用Python编程??? -
定畅诺迪: python3.x 及 python2.x均可运行:1 2n =int(input()) print(bin(n)[2:])

博爱县19455573606: 用python编写程序 -
定畅诺迪: s=read("字符串")str=read("子字符串:") print(s.replace(str,' '))

博爱县19455573606: 如何用python运行一个程序 -
定畅诺迪: 1. 使用Python自带IDLE 始-->程序-->Python2.5(视安装版本同)找IDLE(Python GUI) 点击弹窗体: >>>提示符输入代码车执行代码 IDLE支持语高亮支持自缩进支持提示提示慢 2. 命令行窗口运行 种前提:系统PATH变量配置Python安...

博爱县19455573606: 求一个简单的Python程序 在线等 -
定畅诺迪: import random def roll_die_once(min = 1, max = 6):

博爱县19455573606: 请用Python语言编程实现由十进制数到二进制数的转换,急求 -
定畅诺迪: #!/usr/bin/python # -*- coding:utf-8 -*- # @File : Dec_To_Bin.py """ description """ def dec2bin(string_num):num = int(string_num)mid = []while True:if num == 0:breaknum, rem = divmod(num, 2)mid.append(rem) return ''.join([str(x) ...

博爱县19455573606: 题目:有关Python语言的题,急!!!!!!
定畅诺迪: 晕....又碰到一个是这个做也的好友...给你贴下代码吧..哈哈 第一题: #!/usr/bin/env python#-*- coding: GB2312 -*- while True: filename = raw_input('输入文本路径:') if filename != 'exit': txtfile = file(filename, 'r+') content = txtfile.readlines() txtfile....

博爱县19455573606: python怎样编程第一行输出1234556,第二行输出12345,第三行输出1234办得倒三角 -
定畅诺迪: 按照你的要求编写的Python程序如下 #!/usr/bin/python3n=4for i in range(1,n*2+1): for j in range(1,n+1-abs(n-i)): print (j, end='') print()

博爱县19455573606: python的一个简单程序 -
定畅诺迪: #-*- coding:utf-8 -*- name = raw_input('Please enter your name: ') if name == 'Tom': print 'You are great!' else: print 'You input the wrong name!'

博爱县19455573606: 用PYTHON编写一个小程序,输出所有满足条件的素数 -
定畅诺迪: 按照你的要求编写的Python程序如下1 2 3 4 5 6 7 8 9 10 11 12 13 14 15importmathfori inrange(100,1000): forj inrange(2,int(math.sqrt(i))+1): ifi%j==0: break; else: if(i%10+i//10%10)%10==i//100: print(i) 源代码(注意源代码的缩进)

博爱县19455573606: 请问python编程中怎么用正则表达式来编写一个程序,从而判断输入的数是否为浮点数.求高手指教. -
定畅诺迪: 1. 程序如下: import re number = str(input("Please input a number:")) pattern = re.compile(r'^[-+]?[0-9]+\.[0-9]+$') match = pattern.match(number) if match:print "Number is a float." else:print "Number is not a float." 2. 关于这个正则表达...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网