统计剩余可用字符集

该程序接收输入的全量字符集和已占用字符集,通过解析和计算找出剩余可用的字符及其数量。输入格式包含@符号,@前为全量字符集,@后为已占用字符集。程序会确保输出的字符顺序与输入一致,并且不包含已全部占用的字符。
摘要由CSDN通过智能技术生成

63

“”"
/*
给定两个字符集合
一个是全量字符集
一个是已占用字符集
已占用字符集中的字符不能再使用
要求输出剩余可用字符集

输入描述
 1. 输入一个字符串 一定包含@
 @前为全量字符集  @后的为已占用字符集
 2. 已占用字符集中的字符
 一定是全量字符集中的字符
 字符集中的字符跟字符之间使用英文逗号隔开
 3. 每个字符都表示为字符+数字的形式
  用英文冒号分隔
  比如a:1标识一个a字符
 4. 字符只考虑英文字母,区分大小写
  数字只考虑正整型 不超过100
 5. 如果一个字符都没被占用 @标识仍存在
 例如 a:3,b:5,c:2@

 输出描述:
   输出可用字符集
   不同的输出字符集之间用回车换行
   注意 输出的字符顺序要跟输入的一致
   不能输出b:3,a:2,c:2
   如果某个字符已全部占用 则不需要再输出

  示例一:
   输入
   a:3,b:5,c:2@a:1,b:2
   输出
   a:2,b:3,c:2
   说明:
   全量字符集为三个a,5个b,2个c
   已占用字符集为1个a,2个b
   由于已占用字符不能再使用
   因此剩余可用字符为2个a,3个b,2个c
   因此输出a:2,b:3,c:2
 */

“”"

allStr, usedStr = input().split("@")
if not usedStr:
    print(allStr)
else:
    allStrList = allStr.split(",")
    allStrDict = {}
    for s in allStrList:
        tmp = s.split(":")
        allStrDict[tmp[0]] = int(tmp[1])
    usedStrList = usedStr.split(",")
    for us in usedStrList:
        tp = us.split(":")
        allStrDict[tp[0]] -= int(tp[1])
    ans = [i[0]+":"+str(allStrDict.get(i[0])) for i in allStrList if allStrDict.get(i[0]) > 0]
    print(",".join(ans))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值