题目:字符集
简单描述:
输入字符串,字符串中一定包含@,@前为全量字符集,后面为已占用字符集(不能再被使用),要求输出剩余可用字符集(全量字符集减去已占用字符集)。具体输入输出格式见示例
示例:
输入 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])