OJ(牛客網)輸入輸出練習 Go實現

2021-10-18 21:28:28 字數 3765 閱讀 7006

此外,這個練習可以基於牛客的乙個競賽進行練習,我都是基於這裡的題目來練習,後來者們可參考一下我的**,並自己敲一遍(實踐很重要!)

package main  // 包名, 必需的,因為這裡就是相當於乙個go檔案

import

(// 呼叫的包

"fmt"

"io"

)func

main()

else}}

// 注: scan從標準輸入掃瞄文字,將成功讀取的空白分隔的值儲存進成功傳遞給本函式的引數。

// 換行視為空白。返回成功掃瞄的條目個數和遇到的任何錯誤。

// 如果讀取的條目比提供的引數少,會返回乙個錯誤報告原因

// 後面如果沒有必要,比如說第二題,我不會獲取對應的`n,err` ,

// 直接用起來的(就是假定輸入都是正確的不會進行特別處理)

package main

import

"fmt"

func

main()

}// 如果是正常的業務開發的話,是需要獲取err並進行處理的

// 業務處理的形式 後面題目不會寫這種形式的,因為筆試有時間限制的

func

main()

for t >0

fmt.

println

(a + b)

t--}}

package main

import

"fmt"

func

main()

fmt.

println

(a + b)

}}

package main

import

"fmt"

func

main()

sum :=

0for n >

0 fmt.

println

(sum)}}

// 當然這個題可以使用bufio包來做,也就是讀入一行資料再進行處理

package main

import

("fmt"

"os"

"bufio"

"strings"

"strconv"

)func

main()

res :=

0for i :=

1; i <

len(nums)

; i++

fmt.

println

(res)

}}

package main

import

("fmt"

)func

main()

fmt.

println

(res)}}

// 當然這個題可以使用bufio包來做,也就是讀入一行資料再進行處理

package main

import

("fmt"

"os"

"bufio"

"strings"

"strconv"

)func

main()

fmt.

println

(res)

}}

// 這個直接用bufio做比較方便

package main

import

("fmt"

"os"

"bufio"

"strings"

"strconv"

)func

main()

fmt.

println

(res)}}

// 當然, fmt。sacn也可以做, 與第一道題類似的判斷就是了

package main

import

("fmt"

"io"

)func

main()

fmt.

println

(res)

}else

}}

// 這個直接用bufio做好,因為這題沒有指定陣列的大小了, 

// 這種情況用fmt.scan我還沒想到,有做出來的大佬們可以告訴我一下!感謝

package main

import

("fmt"

"os"

"bufio"

"strings"

"strconv"

)func

main()

fmt.

println

(res)

}}

package main

import

("fmt"

"os"

"bufio"

"strings"

"sort"

)func

main()

fmt.

println

(res[1:

])// 去掉前導空格

}

package main

import

("fmt"

"os"

"bufio"

"strings"

"sort"

)func

main()

}

// 這個跟上面的一樣,只不過分割符變成了 "," 而已

package main

import

("fmt"

"os"

"bufio"

"strings"

"sort"

)func

main()

}

其實綜上所述,好像是使用bufio直接讀取一行比較方便,但是這裡可依據題目要求自行選擇比較合適的方法,沒有最好的,只有合不合適的,此外,在我的**中使用了多個包,有些包以及包含的函式方法我在這裡沒有很詳細地講解,在這裡放上我常用的乙個go的乙個api中文文件鏈結,大家有啥不懂的可以自行查查。

!!!bufio.scanner 存在緩衝區,如果出現緩衝區超了就會返回乙個空的東西, 如果超緩衝區,需要對緩衝區進行擴容!!!

// 擴容

bufio.

newscanner

(os.stdin)

bs :=

make([

]byte

,2000

*1024

)// 設定緩衝區大小。。。

input.

buffer

(bs,

len(bs)

)// 設定緩衝區大小。。。

// 預設大小是 maxscantokensize = 64 * 1024

// 對應原始碼。。。 buffer panics if it is called after scanning has started.

func

(s *scanner)

buffer

(buf [

]byte

, max int

) s.buf = buf[0:

cap(buf)

] s.maxtokensize = max

}

牛客網程式設計題輸入輸出

求a b 前面四行都是一樣的 牛客網 readline 賽碼 read line var print console.log var readline require readline sync readline.setdefaultoptions var read line readline.pr...

牛客網 python輸入輸出要求

牛客網推薦使用sys.stdin.readline 形式輸入,輸出用print 牛客網的一般程式設計題和劍指offer與letcode的輸入輸出格式不同 如 計算兩數的和 python2 獲取輸入 import sys try while true line sys.stdin.readline s...

牛客網JS程式設計處理輸入輸出

如果題目的輸入要求是多行的輸入,用js node處理輸入。示例如下 var readline require readline const rl readline.createinte ce var countline 1 var tokens rl.on line function line el...