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