【算法】Go语言快读函数
本文最后更新于 908 天前,其中的信息可能已经有所发展或是发生改变。

Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。

Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。

摘自:https://www.runoob.com/go/go-tutorial.html

众所周知,快速入门一个编程语言的方法就是拿它刷算法题。最近,我拿Golang刷算法题就遇到了一个比较棘手的问题,从stdin读入数据实在是太慢了,虽然Go语言的fmt库设计得比较像C语言,但性能差距悬殊,于是便在网上找到了如下快读代码:

func scanInt(scanner *bufio.Scanner) int {
	scanner.Scan()
	a := 0
	for _, num := range scanner.Bytes() {
		a = a*10 + num-'0'
	}
	return a
}

在main函数中,我们使用下列语句来初始化一个Scanner:

scanner := bufio.NewScanner(os.Stdin)
scanner.Split(bufio.ScanWords)
scanner.Buffer(make([]byte, 1024*1024), 1024*1024)

这个代码可以将Scanner中的一段ASCII编码快速转换为int类型,并且Scanner本身具有Buffer缓冲区的功能,因此,比fmt.Scanf()要快得多,所以在使用Go语言做算法题的时候,使用快读是非常有必要的。

转载请注明出处!本文链接: https://battlehawk233.cn/post/286.html



暂无评论

发送评论编辑评论

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇