今日先来无聊就把1001-1005的题目刷了一遍,题目本身没有难度,主要是为了熟练我最近学的Python,好了正文开始。
由于第一题是直接在文本框里敲代码所以没保存下来,而且也不难,就不贴代码了
1002
很简单只需要一个数组即可,主要是ord()函数的使用
chinese = ['ling','yi','er','san','si','wu','liu','qi','ba','jiu']
a = raw_input()
s = 0
for i in a:
s += ord(i) - 48
cs = str(s)
for i in cs:
print(chinese[ord(i)-48]),
1003
这道题目难度主要在能否真正理解字符串内部的关系,主要关系分析如下:
1. PT中必须要有A
2. 而且A的数量就刚好是 P之前的A的数量与T之后的A的数量的倍数关系
3. 无其他多余字符这个很明显
n = input()
for i in range(n):
flagp = -1
flagt = -1
isRight = True;
s = raw_input()
for j in range(len(s)):
if s[j] == 'P':
if flagp == -1:
flagp = j
else:
isRight = False
break;
elif s[j] == 'T':
if flagt == -1:
flagt = j
else:
isRight = False
break;
elif s[j] != 'A':
isRight = False
break
if isRight == False:
print('NO')
else:
if flagt < flagp+2 :
print('NO')
elif len(s)-flagt-1 != (flagt-flagp-1)*flagp:
print('NO')
else:
print('YES')
1004
很简单,读入,比较,记录即可
import string #注意
n = input()
HStuName = ''
LStuName = ''
HStuID = ''
LStuID = ''
Hs = -1
Ls = 101
for i in range(n):
s = map(str,raw_input().split())
temp = string.atoi(s[2],10) #字符串转数字
if temp > Hs:
Hs = temp
HStuName = s[0]
HStuID = s[1]
if temp < Ls:
Ls = temp
LStuName = s[0]
LStuID = s[1]
print "%s %s\n%s %s" % (HStuName,HStuID,LStuName,LStuID)
1005
第一题的进化,具体看代码,把每个数据都先认为是所需的结果,然后一旦后面有出现,则删除
n = input()
nums = set() #中间产生的数据
outer = set() #输出结果保存
x = map(int,raw_input().split())
for i in x:
outer.add(i)
while i != 1:
if i in nums:
if i in outer:
outer.remove(i)
break
else:
nums.add(i)
if i % 2 == 0:
i /= 2
else:
i = (i*3+1)/2
s = [i for i in outer]
s.sort(reverse=True) #逆序排序
for i in s:
print(i),
我的第一篇博客就到此结束,欢迎提出意见,本人也是才学python不久,做上面的题目也是为了练手而已
最后贴上壁纸一张 也是我正在用的桌面壁纸

博主分享了使用 Python 刷PAT(编程能力测试)1001-1005题目的经验,强调题目简单,主要目的是锻炼Python技能。文中提到各题要点,如1002题关注ord()函数,1003题要求理解字符串内A的数量关系,1004和1005题则涉及读入和比较操作。博客结尾博主表示自己是Python初学者,欢迎读者提意见。
&spm=1001.2101.3001.5002&articleId=8687898&d=1&t=3&u=6de0af4c9387453eaa99d851f018ed7e)

被折叠的 条评论
为什么被折叠?



