六安做网站的公司,wordpress 评论者邮箱,wordpress 有缓存吗,公司名字大全洋气前言 记录我的解法以及笔记思路#xff0c;谢谢观看。
题单目录
1.P2141 [NOIP2014 普及组] 珠心算测验
2.P1567 统计天数
3.P1055 [NOIP2008 普及组] ISBN 号码
4.P1200 [USACO1.1] 你的飞碟在这儿 Your Ride Is Here
5.P1308 [NOIP2011 普及组] 统计单词数
6.P1047 […前言 记录我的解法以及笔记思路谢谢观看。
题单目录
1.P2141 [NOIP2014 普及组] 珠心算测验
2.P1567 统计天数
3.P1055 [NOIP2008 普及组] ISBN 号码
4.P1200 [USACO1.1] 你的飞碟在这儿 Your Ride Is Here
5.P1308 [NOIP2011 普及组] 统计单词数
6.P1047 [NOIP2005 普及组] 校门外的树
7.P1046 [NOIP2005 普及组] 陶陶摘苹果
8.P1553 数字反转升级版
9.P1598 垂直柱状图 1.P2141 [NOIP2014 普及组] 珠心算测验 这一道题我是有参考网上的一个大佬的思路来的但是那个大佬的代码只有两行很显然我现在的能力达不到就写成了我自己能够理解的样子。 那python有一个容器是集合关于python中集合的定义跟数学其实差不多第一次的写的时候没有注意到题目中说得加数与被加数要不相同所以无法通过。 然后我又开始一直纠结怎么解决增加了好多判断条件然后看到大佬直接用集合就可以解决了所以这个方法一定要记住。 其次这个大佬还用到了集合的一个函数方法就是交集总之思路真的很绝。 intersection() 方法 用于返回两个或更多集合中都包含的元素即交集。 intersection() 方法语法 set.intersection(set1, set2 ... etc) n int(input())
l set(map(int,input().split( )))
s []
count 0
for i in l:for j in l:if i!j:s.append(ij)
s set(s)
count len(s.intersection(l))
print(count)
2.P1567 统计天数 循环外层必须再要加一个判断不然就会有一个测试点过不了。 输入 2 1 2 输出 不加外层循环输出的是1但是其实我们知道结果是2 因为在天数一直都处于增加的状态的时候到最后一天的时候就直接跳出了循环。并不会执行else。 n int(input())
l list(map(int,input().split( )))
count 0
flag 1
last 0
for i in l:if i last:count 1else:if count flag:flag countcount 1last i
if count flag:flag count
print(flag)
3.P1055 [NOIP2008 普及组] ISBN 号码 这道题一开始我想着得是用字符串去做后来发现很不方便就是在修改字符串的数值方面远不如列表换用上了列表就方便很多了。 s list(input())
flag 0
count 1
for i in range(len(s)-1):if i!1 and i!5 and i!11:flag int(s[i])*countcount 1
num flag%11
if num 10:num X
if str(num) s[-1]:print(Right)
else:s[-1] str(num)for i in s:print(i,end)
4.P1200 [USACO1.1] 你的飞碟在这儿 Your Ride Is Here 这道题就是关于字母转为ascii数字的问题要用到一个函数。ord函数。可以直接将字符串转为数字。 ord() 函数 返回对应的 ASCII 数值 l1 list(input())
l2 list(input())
result1 1
result2 1
for i in l1:result1 * (ord(i)-ord(A))1
for i in l2:result2 * (ord(i)-ord(A))1
if result1%47 result2%47:print(GO)
else:print(STAY)5.P1308 [NOIP2011 普及组] 统计单词数 这道题的解法我是看了一个大佬的代码因为我自己实在是写不出来大佬的思路简直就是我无法想到的非常值得学习。大佬还贴心写出来了注释很好看懂。 s1input()#输入要查询的单词
s1s1.upper()#将单词转成大写
xlen(s1)#s1字符串的长度
s2input()#输入文章
s3[]#s3每次提取文章的一个单词
ylen(s2)#s2字符串长度
sum0#sum记录单词出现在文章中的次数
begin-1#begin记录单词第一次出现在文章中的位置
for i in range(y):if(s2[i]! ):s3.append(s2[i].upper())#将一个完整的单词放入s3中else:if(list(s1)s3):#比较单词和s3所储存的单词是否相同sum1#如果相同次数加一if(begin-1):#首次出现特定单词begini-x#首次出现的位置s3.clear()#清空准备下一个单词
if(sum0):print(sum, begin)
else:print(-1)#未查询到输出-16.P1047 [NOIP2005 普及组] 校门外的树 这道题就是运用了集合中元素的互异性。 l,m map(int,input().split( ))
a []
for i in range(m):u,v map(int,input().split( ))for i in range(u,v1):a.append(i)
a set(a)
print(f{l - len(a)1})
7.P1046 [NOIP2005 普及组] 陶陶摘苹果 l list(input().split( ))
h int(input())
count 0
for i in l:if h30 int(i):count 1
print(count)
8.P1553 数字反转升级版 这道题写出100分实在是太难了在下载了洛谷提供的多次数据之后终于全部 AC因为情况很多所以必须得考虑得/十分仔细。其实这道题的思路就是比较简单的分不同情况进行处理但是本质上都是对整数的处理。最难的情况是小数因为在数字进行反转的时候0不能在开头对于小数点的前一部分的反转直接转变为Int之后就不用考虑那些0但是对于小数点后面的数字就比较麻烦这个时候就需要重新寻找pos的数值。但是这个时候我们必须考虑到如果小数点的右边只有一个0按照我的那个方法是会报错的所以我加了一个try语法就解决了。 find函数 如果包含子字符串返回开始的索引值否则返回-1。 s input()
if . in s:pos s.find(.)s1 s2 s3 for i in range(0,pos):s1 s[pos-i-1]print(int(s1),end)print(.,end)try:for i in range(pos1,len(s)):if s[i] ! 0:pos2 ibreakfor j in range(len(s)-1,pos2-1,-1):s3 s[j]print(int(s3))except:print(0)
elif / in s:pos s.find(/)s1 s2 for i in range(0, pos):s1 s[pos - i - 1]print(int(s1),end)print(/, end)for j in range(len(s) - 1, pos, -1):s2 s[j]print(int(s2))
elif % in s:pos s.find(%)s1 for i in range(0, pos):s1 s[pos - i - 1]print(int(s1), end)print(%, end)
else:s1 for i in range(0,len(s)):s1 s[len(s)-i-1]print(int(s1))
9.P1598 垂直柱状图 简单来说一下这道题我做的思路首先我们要算出26个字母出现的次数然后存入一个列表仔细观察打印的格式我们需要关注打印多少行是由什么决定的最后我们发现打印的行数与出现次数的最大值有关于是我们通过找到出现次数的最大值来决定打印的行数。接着就是如何打印出格式出来这个就比较简单就是次数问题那需要注意的就是最后一个打印出来的没有空格。 chr函数 返回值是当前整数对应的 ASCII 字符。 ls
for i in range(4):s input()ls s.replace( ,)
ls ls.replace(.,)
ls ls.replace(!,)
var A
l []
for i in range(26):temp chr(ord(var) i)num ls.count(temp)l.append(num)
Max max(l)
for i in range(Max):for j in range(len(l)):if l[j] (Max-i):if j ! len(l)-1:print(*,end )else:print(*)else:if j ! len(l) - 1:print( , end )else:print( )for i in range(26):if i ! 25:print(f{chr(ord(var)i)},end )else:print(f{chr(ord(var) i)})
10.总结
继续加油