华为OD机试:一星算法题---字符集

题目:字符集

简单描述:

        输入字符串,字符串中一定包含@,@前为全量字符集,后面为已占用字符集(不能再被使用),要求输出剩余可用字符集(全量字符集减去已占用字符集)。具体输入输出格式见示例

示例:

输入 a:3,b:5,c:2@a:1,b:2

输出 a:2,b:3,c:2 

关键点:

1.字符串的分割

以'@',',',':'三种分割

2.字典的统计运算

3.如果@后面没有东西,无法进行分割,但可以直接输出

实现:

input_str = input()
# 将输入字符串按@符号拆分成全量字符集和已占用字符集
char_sets = input_str.split('@')
full_char_set = char_sets[0].split(',')
occupied_char_set = char_sets[1].split(',')

if len(char_sets[1]) > 0:
    # 构建全量字符集的字典
    full_dict = {}
    for char_count_pair in full_char_set:
        char, count = char_count_pair.split(':')
        full_dict[char] = int(count)

    # 构建已占用字符集的字典
    occupied_dict = {}
    for char_count_pair in occupied_char_set:
        char, count = char_count_pair.split(':')
        occupied_dict[char] = int(count)

    # 计算剩余可用字符集
    remaining_dict = {}
    for char, count in full_dict.items():
        remaining_count = count - occupied_dict.get(char, 0)
        if remaining_count > 0:
            remaining_dict[char] = remaining_count

    # 将剩余可用字符集转换为字符串输出
    remaining_str = ','.join([f"{char}:{count}" for char, count in remaining_dict.items()])
    print(remaining_str)
else:
    print(input_str[:-1])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值