迟来的省赛题目(4月23日)答案!
之前题目五答案是错的,这回改对了
对不起,给大家带来 不便
准备好了吗?迎接怪盗基德的到来吧
怪盗キッドを迎えよう(完了,中二病犯了!)
注:没看过题目的往这里走哦!(有兴趣的可以去康康呀)
题目一:
好,我们话不少多说,上第一道题思路及解法。
思路:
震惊,蓝桥杯省赛竟然考字符串拼接!!
那么面对这种题我感觉自己的智商好像被侮辱了!!
这道题就只能祭出我们的大杀器了:“+”
当当当当,那就是加号!
众所周知,加号是python中的程序拼接符。
来看看代码吧:
啾咪
代码:
S1 = input()
S2 = input()
print(S1 + S2)
轻轻松松30分到手,so easy!!o(* ̄▽ ̄*)ブ
题目二:
思路:
求出输入之中最大的数字?
我考试时脑海里的一个蹦出来的解决方案是:
将输入的内容转换成列表,并使用列表中的max()内置函数了.
max() 方法返回字符串中最大的字母.
max()方法语法:max(str)
参数:str -- 字符串。
返回值:返回字符串中最大的字母。
举个例子:
str = "this is really a string example....wow!!!"
print("Max character: " + max(str))
#输出结果:
'''
Max character: y
'''
str = "this is a string example....wow!!!"
print("Max character: " + max(str))
#输出结果:
'''
Max character: x
'''
代码:
N = list(input())
print(max(N))
又是轻轻松松40分到手
题目三:
思路:
因为我们要判断多个事物,所以要用到条件判断语句:if
if 语句格式(双重)if (条件):
代码
else:
代码
if 语句格式(三重)if (条件):
代码
elif ( 条件 ):
代码
else:
代码
代码:
N = int(input())
a = list(map(int,input().split(",")))
b = 0
for i in a:
if i <= N:
b += 1
elif i <= int(N + 80):
b += 1
else:
continue
print(b)
题目四:
思路:
哎呀,这不是小马过河的题目吗,
我们要做的就是‘分类讨论’,
循环判断多种条件
一.1个1个背
二.2个2个背
三.3个3个背
代码:
n = int(input()) #输入
a = 1 #一格一格背
b = 2 #两格两格格背
c = 4 #三+一(必须加一)格格背
for i in range(1,n-3,1): #循环结束值为n-3的原因是:三格三格背
c, b, a = a+b+c, c, b #像斐波那契数列一样赋值
print(c) #打印结果
50分真不戳,😊😊😊
题目五:
思路:
考试时我不太会,哭唧唧。
我有暴力枚举法,做出了一下效果。
# 说明:
# 所有测试数据正确率为 66%!
# 可以尝试再次完善代码,并调试,争取全部AC通过
我们一起来看一下其他大神的解法吧@悦儿姐
https://blog.csdn.net/weixin_46710559
代码:
def find_left(j,g,s,M): # 左边找找(M后期赋值 列的意思)
d=0 # 纯净海域数
while g<M-1: # 注意不要超过遍历范围,M为了变成索引号要-1
if s[j][g]==1: # 判断是否没被污染
s[j][g]=0 # 把海污染了
g+=1 # 往左一块
d+=1 # 纯净海域数+1
else:
break # 不是就退出
if d !=0: # 如果有纯净海域(不管多少,有就行)
return 1
else:
return 0
def find_down(j,g,s,N): # 下面找找,和左边方法一模一样(N后期赋值 行的意思)
d=0
while j<N:
if s[j][g]==1:
s[j][g]=0
j+=1 # 往下一块
d+=1
else:
break
if d !=0:
return 1
else:
return 0
n=input() # 输入行和列
N=int(n[0]) # 行
M=int(n[2]) # 列(去掉逗号 它算第三个)
s=[] # 总体大地图
z=0 # 纯净海域数(未被加工 拐角处会算两个)
y=0 # 拐角数(把z减掉y就剩下最终结果了)
for i in range(N): # 搞N个输入框 达到N行的效果
a=list(eval(input())) # 把输入结果转成列表
s.append(a) # 把a这个小地图放到s这个大地图里
for j in range(N): # 行索引号
for g in range(M): # 列索引号
if s[j][g]==1: # 开始判断拐角
if ((j<N-1 and s[j+1][g]==1) or (j>0 and s[j-1][g]==1)) and ((g<M-1 and s[j][g+1]==1) or (g>0 and s[j][g-1]==1)):
# 既满足 下边有 或者 上边有 还满足 右边有 或者 左边有
y+=1 # 拐角数+1
for j in range(N):
f