蓝桥杯-第十一届蓝桥杯大赛第二次模拟(软件类)真题-Python题解

1.在计算机存储中,12.5MB是多少字节?

:1GB=1024MB,1MB=1024KB,1KB=1024B

2.一个包含有2019个结点的有向图,最多包含多少条边?(不允许有重边)

:完全图时边最多,2019*(2019-1)

3.将LANQIAO中的字母重新排列,可以得到不同的单词,如LANQIAO、AAILNOQ等,注意这7个字母都要被用上,单词不一定有具体的英文意义。

请问,总共能排列如多少个不同的单词。

string='LANQIAO'
from itertools import permutations
#去掉重复的排列
ans=set()
for item in permutations(string):
    ans.add(item)

print(len(ans))

4.由1对括号,可以组成一种合法括号序列:()。

由2对括号,可以组成两种合法括号序列:()()、(())。

由4对括号组成的合法括号序列一共有多少种?

#括号对数
n=4
ans=0
#寻找满足要求的括号匹配
def find(left,rigth):
    #引用外部全局变量
    global n
    global ans
    #左括号数量等于n
    #说明一次试探结束
    if left==n:
        ans+=1
        return
    #添加一个左括号
    find(left+1,rigth)
    #在满足括号匹配的原则下添加右括号
    if left>rigth:
        find(left,rigth+1)

find(0,0)

print(ans)

n=int(input())
a,b,c=map(int,input().split())
ans=0

for i in range(1,n+1):
    if i%a!=0 and i%b!=0 and i%c!=0:
        ans+=1

print(ans)

 

string=input()
ans=''
for i in range(len(string)):
    #ascii码转换
    ans+=chr((ord(string[i])-97+3)%26+97)

print(ans)

1.在计算机存储中,15.125GB是多少MB

解答:1GB=1024MB,1MB=1024KB,1KB=1024B

2.1200000有多少个约数

number=1200000
from math import sqrt
n=int(sqrt(number))
count=0
for i in range(1,n+1):
    if number%i==0:
        count+=1

print(count)

3.一棵包含有2019个结点的二叉树,最多包含多少个叶结点?

解答:2018/2+1

4.在1至2019中,有多少个数的数位中包含数字9 注意,有的数中的数位中包含多个9,这个数只算一次。例如,1999这个数包含数字9,在计算只是算一个数。

#判断数字是否含有9
def has9(n):
    flag=False
    while n!=0:
        a=n%10
        if a==9:
            flag=True
            return flag
        n//=10
    return flag
ans=0
for i in range(1,2019+1):
    if has9(i):
        ans+=1
        
print(ans)

5.一个正整数如果任何一个数位不大于右边相邻的数位,则称为一个数位递增的数,例如1135是一个数位递增的数,而1024不是一个数位递增的数。给定正整数 n,请问在整数 1 至 n 中有多少个数位递增的数?

【输入格式】输入的第一行包含一个整数 n。

【输出格式】输出一行包含一个整数,表示答案。

【样例输入】30

【样例输出】26

#拆分数位
def splitNumber(n):
    ans=[]
    while n!=0:
        ans.append(n%10)
        n//=10
    return ans[::-1]
#判断是否是递增
def isIncrement(n):
    number_list=splitNumber(n)
    flag=True
    for i in range(len(number_list)-1):
        if number_list[i]>number_list[i+1]:
            flag=False
            return flag
    return flag
n=int(input())
count=0
for i in range(1,n+1):
    if isIncrement(i):
        count+=1

print(count)

6.在数列 a[1], a[2], ..., a[n] 中,如果对于下标 i, j, k 满足 0<i<j<k<n+1 且 a[i]<a[j]<a[k],则称 a[i], a[j], a[k] 为一组递增三元组,a[j]为递增三元组的中心。给定一个数列,请问数列中有多少个元素可能是递增三元组的中心。

【输入格式】输入的第一行包含一个整数 n。第二行包含 n 个整数 a[1], a[2], ..., a[n],相邻的整数间用空格分隔,表示给定的数列。

【输出格式】输出一行包含一个整数,表示答案。

【样例输入】

5

1 2 5 3 5

【样例输出】2

【样例说明】a[2] 和 a[4] 可能是三元组的中心。

n=int(input())
number_list=list(map(int,input().split()))
count=0
#判断列表当前元素是否大于其左边某个元素
def greaterThanLeft(id,number_list):
    flag=False
    for i in range(id):
        if number_list[i]<number_list[id]:
            flag=True
            return flag
    return flag
#判断列表当前元素是否小于其右边某个元素
def lessThanRight(id,number_list):
    flag=False
    for i in range(id+1,len(number_list)):
        if number_list[i]>number_list[id]:
            flag=True
            return flag
    return flag

for i in range(1,len(number_list)-1):
    if greaterThanLeft(i,number_list) and lessThanRight(i,number_list):
        count+=1

print(count)

7.小明对类似于 hello 这种单词非常感兴趣,这种单词可以正好分为四段,第一段由一个或多个辅音字母组成,第二段由一个或多个元音字母组成,第三段由一个或多个辅音字母组成,第四段由一个或多个元音字母组成。给定一个单词,请判断这个单词是否也是这种单词,如果是请输出yes,否则请输出no。元音字母包括 a, e, i, o, u,共五个,其他均为辅音字母。

【输入格式】输入一行,包含一个单词,单词中只包含小写英文字母。

【输出格式】输出答案,或者为yes,或者为no。

【样例输入】lanqiao

【样例输出】yes

【样例输入】world

【样例输出】no

#字符串处理
string=input()
#字符串按照元音分割后的字符串列表
string_list=[]
#字符串长度
length=len(string)
#元音字符串
match_string='aeiou'
i=0
#分割字符串
while i!=length:
    #分割辅音字母组合
    temp=''
    while string[i] not in match_string:
        temp+=string[i]
        i+=1
        if i==length:
            break
    string_list.append(temp)

    if i==length:
        break
        
    #分割元音组合
    temp=''
    while string[i] in match_string:
        temp+=string[i]
        i+=1
        if i==length:
            break
    string_list.append(temp)

if len(string_list)==4:
    print('yes')
else:
    print('no')

猜你喜欢

转载自blog.csdn.net/Talantfuck/article/details/124557460
今日推荐