题解 | #参数解析#

参数解析

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()


全部评论

相关推荐

不愿透露姓名的神秘牛友
07-02 18:35
简历上把1个月实习写成了3个月,会进行背调吗?
码农索隆:一个月有一个月的实习经历,三个月有三个月的实习经历
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务