题解 | #参数解析#

参数解析

https://www.nowcoder.com/practice/668603dc307e4ef4bb07bcd0615ea677

package main

import (
	"fmt"
	"bufio"
    "os"
)

func parseParams(cmd string) []string {
    var params []string

    left, right := 0, 0
    var substr string
    for right < len(cmd) {
        if cmd[right] == '"' {
            right++
            start := right
            for cmd[right] != '"' {right++}
            substr = cmd[start:right]
            params = append(params, substr)

            // 跳过 “ 和 空格
            right += 2
            left = right
        } else if cmd[right] == ' ' {
            substr = cmd[left:right]
            params = append(params, substr)
            right++
            left = right
        } else {
            right++
        }
    }

    return params
}

func main() {
    inputReader := bufio.NewReader(os.Stdin)
    line, _, _ := inputReader.ReadLine()

    cmd := string(line)

    // 在字符串最后加一个空格,避免处理最后一个的情况
    cmd += " "

    params := parseParams(cmd)
    fmt.Println(len(params))

    for _, param := range params {
        fmt.Println(param)
    }
}
// 本题输入一个带空格的字符串,所以采用:inputReader.ReadLine()

全部评论

相关推荐

2024-12-29 19:48
河北科技大学 Java
没事就爱看简历:问题不在于简历:1、大学主修课程学那么多应用语言,作为计算机专业是很难理解的。 2、技能部分,每一个技能点的后半句话,说明对熟练,熟悉的标准有明显误会。 3、项目应该是校企合作的练习吧,这个项目你负责什么,取得了哪些成果都没有提及,只是列举了你认为有技术含量的点,而这些都有成熟的实现。
点赞 评论 收藏
分享
02-10 01:52
已编辑
贵州师范学院 C++
在做核酸的杰尼龟很想去广西嗦粉:bro这个简历看着不错啊,这都找不到吗?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务