第三题一如既往的是模拟题,这次模拟解释命令行。做第三题的心态就是:不要被题目吓到,不用急,慢慢看完就好,最后注意细节。这一题规则很清晰,难度适中。
题目大意
给一个格式化字符串(每个字母是一个选项),再给出几个命令行,看每个命令行里面哪些选项符合就输出哪些,遇到不符合的就结束分析
思路
- 先把选项分类好。一种是不带参数类型(列表存储),另一种是带参数类型(存储数据结构因人而异,python用字典,java用map,反正要可以存储带参数选项的参数)
- 处理命令行,一个个选项看,如果该选项是带参数类型的,读取后面的参数,更新选项的参数值,把参数加入ans(答案列表,存储不重复的选项);如果选项是不带参数类型的,看是否已经加入过ans,没有就加入。
- 最后遍历ans,如果选项是带参数类型输出选项同时输出参数,不带参数类型只输出选项
- 细节:注意带参数类型的参数,组成字符可以是符号‘-’,字母和数字,还有处理格式字符串和命令行选项的时候,注意不要溢出。
format_str = input()
no_arg_opt = []
has_arg_opt = {}
# 处理格式字符串,分类
idx = 0
while idx < len(format_str):
if idx + 1 < len(format_str) and format_str[idx + 1]