题解 | #字符串最后一个单词的长度#
字符串最后一个单词的长度
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写华为机考题#
