题解 | #字符串最后一个单词的长度#

字符串最后一个单词的长度

https://www.nowcoder.com/practice/8c949ea5f36f422594b306a2300315da

package main

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

func Scanf() string {
    reader := bufio.NewReader(os.Stdin)
    line, _, err := reader.ReadLine()
    if err == nil {
        return string(line)
    } else {
        return ""
    }
}

func LastWordLen(sentence string) {
    length := len(sentence)
    lastBlankIdx := -1
    for i:=length-1;i>=0;i-- {
        if sentence[i] == ' ' {
            lastBlankIdx = i
            break
        }
    }
    fmt.Printf("%d", length -1 -lastBlankIdx)
}

func main() {
    sentence := Scanf()
    LastWordLen(sentence)
}

已经2024年了,华为机考这个模块的示例代码还不支持golang代码的按行读取。

如何用golang按行读取?

1.先引入包"bufio"和"os"

2.然后构建一个读取器,来源是标准输入

reader := bufio.NewReader(os.Stdin)

3.然后调用方法读取一行数据,返回值有三个

line,类型是字节数组,可以强转为字符串

isPrefix,类型是布尔值,如果true代表录入的行过长,返回这一行头部的数据,再次调用ReadLine方法会不断返回后续部分

err,类型是错误,err和line必然有一个是nil值

    line, _, err := reader.ReadLine()
    if err == nil {
        return string(line)
    } else {
        return ""
    }

#go写华为机考题#
全部评论

相关推荐

点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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