栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

蓝桥杯python组试题(蓝桥杯题库及答案python版)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

蓝桥杯python组试题(蓝桥杯题库及答案python版)

题目描述:

由 A,B,C 这3个字母就可以组成许多串。
比如:“A”,“AB”,“ABC”,“ABA”,“AACBB” …
现在,小明正在思考一个问题:
如果有a个A,b个B,c个C 字母,能组成多少个不同的长度为n的串呢?

输入格式:

一行,四个整数,分别对应a,b,c,n。

输出格式:

一个整数,代表答案。保证结果在int范围内。

输入样例:

3 1 1 2

输出样例:

7

数据范围与提示:

有3个A,1个B,1个C,则可以组成
"AA","AB","AC","BA","BC","CA","CB"
这7个长度为2的字符串。

代码如下1:

a,b,c,n=map(int,input().split())
ls=["A"]*a+["B"]*b+["C"]*c
di,o,z=set(),"",""
def hanshumain(ls,n,m,z):
    if n==1:
        if "A" in ls:
            m+="A"
            if m not in di:
                di.add(m)
            m=m[:-1]
        if "B" in ls:
            m+="B"
            if m not in di:
                di.add(m)
            m=m[:-1]
        if "C" in ls:
            m+="C"
            if m not in di:
                di.add(m)
            m=m[:-1]
    else:
        for o in range(len(ls)):
            if z=="":
                z=ls[0]
                list0=ls[:]
                m+=list0.pop(o)
                k=""
                hanshumain(list0,n-1,m,k)
                m=m[:-1]
            else:
                if ls[o]!=z:
                    z=ls[o]
                    list0=ls[:]
                    m+=list0.pop(o)
                    k=""
                    hanshumain(list0,n-1,m,k)
                    m=m[:-1]
hanshumain(ls,n,o,z)
print(len(di))

注释:这段代码只能过80%

代码如下2:

这是大佬做的代码,看不懂而且快得离大谱

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/772424.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号