新疆网络干部学院需要优化的地方
1.2019蓝桥杯--最长子序列
这道题代码很简单,但要注意其中的细节字眼,不要理解错题
- T中字符串的每一个并不是在S中存在就可以,而需要按照一定顺序依次对应
- 必须从第一个字符开始判断,即使后面有更长的,被隔断了则不需要进行判断
代码一:
s=str(input())
t=str(input())i,j=0,0
while i<len(s) and j<len(t):if s[i]==t[j]:j+=1i+=1
print(j)
代码二:
s=str(input())
t=str(input())
res=0
for i in range(len(s)):if s[i]==t[res]:res+=1
print(res)
这两种代码是完全等价的,看自己喜欢用哪种循环
2.2023蓝桥杯--2023
这道题是一道填空题,我们可以忽略其超时问题,只要能跑出结果即可
对比上一道最长子序列问题,我们可以发现这两道题有相同之处,都可看作从一个字符串中按照顺序,寻找另一个序列
a=['2', '0', '2', '3']
def f(n):i,j=0,0key=Truewhile i<len(n) and j<len(a):if n[i]==a[j]:j+=1i+=1if j==4:key=False# 当j为4的时候,说明可以对应找到2023,即完全包含breakreturn key
# 自定义一个函数,若完全不包含2023则返回Trueans=0
for x in range(12345678,98765433):n=list(str(x))if f(n):ans+=1
print(ans)# 最后结果为85959030
print(85959030)