题解 | #参数解析#
参数解析
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()