[PAT]1032. Sharing

题目链接

思路

既然是找相同的位置,那么相同位置后面的一定都是相同的,所以首先恢复两个链表,接着砍掉相对更长的链表的比另一个链表多出的位置,这样两个链表的长度就相同了。

接着就查找了,遍历 OR 二分?

题目中的i,a等是没有用的

知识点

python中格式化打印int,用

print "%06d"%a #前面的0用来表示,不够6位用0补齐

在C中,用

printf("%.6d",a) //前面的.(点)用来表示,不.........

[PAT]1036. Boys vs Girls

链接

[http://pat.zju.edu.cn/contests/pat-a-practise/1036]

样例代码

n = int(raw_input())

male=[]

female=[]

for i in range(n):

(name,g,ids,grade) = (x for x in raw_input().split())

grade = int(grade)

if g =='M':

male.app......

[PAT]1037. Magic Coupon

链接

[http://pat.zju.edu.cn/contests/pat-a-practise/1037]

思路

将两个list排序

分别从两个list依次对应相乘,直到结果为负,将之前的结果相加

将两个list翻转,重复上一个过程

#代码样例

n = raw_input()

a = [int(x) for x in raw_input().split()]

n = raw_input()

b = [int(x) for x in raw_input().split()]......

[PAT]1038. Recover the Smallest Number (30)

题目链接

http://pat.zju.edu.cn/contests/pat-a-practise/1038

注意

对于两个具有相同首字母的字符串,到底哪个放在前面才能使得连接起来的字符串代表的数字更小,一个简单的方法是分别连接字符串a+b,b+a,然后比较连接后的两个字符串,哪个小,哪种链接方式就是对的。

示例代码(最后一个case超时)

n = [x for x in raw_input().split()]

del n[0]

n.sort()

for i in range......

[PAT]1016. Phone Bills (25)

code

charge = [int(x) for x in raw_input().split()]

n = int(raw_input())

records={}

def cal(start,end):

(month,sday,shour,sminute) = (int(x) for x in start.split(':'))

(month,eday,ehour,eminute) = (int(x) for x in end.split('......

[PAT]1017. Queueing at Bank (25)

示例代码

(n,win) = (int(x) for x in raw_input().split())

records = []

windows=[8*60*60]*win

def time2int(time):

timesp = time.split(':')

return float(timesp[0])*60*60+float(timesp[1])*60+float(timesp[2])

def findMin(windows):

......