题解 | #参数解析#
参数解析
https://www.nowcoder.com/practice/668603dc307e4ef4bb07bcd0615ea677
不知道算不算是用栈,把输入的字符串分隔,遍历列表,不带双引号就加入res,
带双引号的话就入栈(有特殊情况需要判断,见代码),直到下一个带引号的
出现,然后把栈里的打包去引号加入res,最后依次打印res
def analysis(): commend = input().split() stack,res = [],[] n = len(commend) i = 0 while i<n: if '"' in commend[i]: if commend[i].count('"')==1:#这是被分隔开的命令 stack.append(commend[i]) q = 1 while '"' not in commend[i+q]: stack.append(commend[i+q]) q+=1 stack.append(commend[i+q]) res.append(' '.join(stack).strip('"')) i+=q+1 else:#有两个引号在一个字符串的情况,就不用入栈了,直接去引号入res res.append(commend[i].strip('"')) i+=1 else:#普通命令直接入res res.append(commend[i]) i+=1 print(len(res)) for a in res: print(a) analysis()