关于用Go做一些OJ时遇到的问题
关于用Go做一些OJ时遇到的问题
总体上来说oj还是适合用c/c++来做,因为很多oj对他们输入样例处理很完善,但是对于小众语言Go来说,却不是那么好,或者来说,处理输入的方法有点麻烦;
另外吐槽这种输入输出恶心人的oj网站,也许是最近刷leetcode习惯了不处理输入输出的oj。
- 在牛客网的OJ输入上,经常出现问题
多组数据输入,一定处理fmt.Scanln()的返回值,具体处理方式见下:
... n,err:=fmt.Scanln() if n==0||err!=nil{return //或者break等,结束输入 }
问题来源:多组数据下,明明按照它要求的输入输出实现,但还是遇到0.00%通过的问题;多组数据下,明明按照它要求的输入输出实现,但还是遇到0.00%通过的问题;
解决:这多半还是Go的输入上造成的,并且Go没有C/C++的EOF控制方式,所以只能通过fmt.Scanln()返回的参数判断,具体看如下代码。package main import "fmt" func main(){n:=0_,_=fmt.Scanln(&n)//一般不太愿意再处理其返回的两个参数for n>0{a:=0for n>2{a+=n/3;n=n%3+n/3if n==2{n++}}fmt.Println(a)b,err:=fmt.Scanln(&n)//该题因为有明确的停止条件,n==0,所以也没处理其返回值,这样本地测试的所有数据都对,但是放到oj上,一个样例也通不过;//无心加上处理,就通过了!!!真想骂牛客网对小语言的输入处理!垃圾!if b==0||err!=nil{break}} }
一行输入中含有多个数据,即有多个空格分割的输入
这也是Go的输入不像C scanf函数返回EOF结束的处理方式,会造成处理上的麻烦,如下解决方法import "bufio" ... reader:=bufio.NewReader(os.Stdin) n,err:=reader.ReadString("\n") if n==0||err!=nil{return } bytes, _, _ := reader.ReadLine() //处理多行时,注意一下返回值的处理 str := string(bytes) fmt.Println(bytes) fmt.Println(str)
关于用Go做一些OJ时遇到的问题相关推荐
- redis cluster 设置密码做集群时gem下client.rb文件修改
redis cluster 设置密码做集群时gem下client.rb文件修改 来源 https://www.cnblogs.com/shihaiming/p/5949772.html redis节点 ...
- 使用java做paypal开发时购买东西支付不成功的原因
使用java做paypal开发时购买东西支付不成功的原因 没有设置网站习惯设定,登陆自己的paypal账户,在网站习惯设定上填写回调的url路径,这样就可以 支付成功了并且异步修改订单的状态. 支付成 ...
- CMap在用CString做key类型时,ARG_KEY要选LPCTSTR
CMap在用CString做key类型时,ARG_KEY要选LPCTSTR 文章来源:http://blog.csdn.net/flyingxu/archive/2005/12/26/562852. ...
- 做算法题时的一些小技巧
做算法题时的一些小技巧 技巧一: 在用C++做算法题时,我们会觉的cin,cout比scanf,printf使用起来更加的方便,不用指定输入输出格式. 但是cin,cout的运行时间比scanf,pr ...
- 老板说“我们要做个性化推荐”时,你该怎么办......
PMCAFF(www.pmcaff.com):互联网产品社区,是百度,腾讯,阿里等产品经理的学习交流平台.定期出品深度产品观察,互联产品研究首选. 外包大师(www.waibaodashi.com): ...
- 做Mysql主从时,注意使用replicate_wild_do_table和replicate-wild-ignore-table
做Mysql主从时,注意使用replicate_wild_do_table和replicate-wild-ignore-table 浓缩版: 使用replicate_do_db和replicate_i ...
- 【报错笔记】在做struts项目时,所有项目代码没问题但就是报404错误。
在做struts项目时,所有项目代码没问题但就是报404错误,而且tomcat一次只能运行一个项目,做第二个得关闭tomcat,清空再开启运行. 我重新下载了tomcat9还是那样,可能是eclips ...
- 【报错笔记】在eclipse中做Spring项目时,创建Spring容器时老是出错
在eclipse中做Spring项目时,创建Spring容器时老是出错 写完这句代码无法导包,最后发现包导错了,我原来导的4.3.9的包,而且是后缀为其他的包,而且对JDK也有要求,我又下载了5.0. ...
- 头部ct能检查出什么_【安全用药】做CT检查时应注意什么?
点击蓝字 关注我们 安安 徽徽,你知道做CT检查时应注意什么? 上腹部CT检查前患者至少禁食6小时.检查前15分钟喝温开水充盈胃部.CT检查时,患者会受到一定量X射线辐射,应避免过度扫描......本 ...
最新文章
- sbt+Scala IDE建立Scala项目
- 平滑动画 每秒60帧 -- 16ms内绘完一帧
- SAP ABAP OData uri type为metadata的请求处理逻辑
- win32 汇编基础概念整理
- php api查询开发,PHP开发API接口(注册、登录、查询用户信息)的实例代码
- 虚拟化基础架构Windows 2008篇之2-域用户与域用户组管理
- 应届生想要获取web前端开发岗位?这份技能攻略,面试攻略别错过
- springboot 2.0 Redis command timed out的解决
- (转)UIPageControl使亮点直接跳到点击dot上
- 【BZOJ2296】随机种子(构造)
- android中页面跳转以及数据在Activity之间的传递
- 服务器如何取得系统管理员权限,技巧:Windows系统如何获得管理员权限?
- matlab正弦波占空比怎么调,matlab实现可调节占空比的方波
- 凉宫春日的忧郁第二章
- QQ公众号微信公众号,左右互搏?
- TOC制约理论的本质及其在生产、项…
- 如何区分b ,B,KB,MB,GB?
- SR(稀疏表示)人脸识别
- 怎么在微信公众号文章里添加附件(如word、excel、pdf等)
- 培训c语言程序,编程人员培训手册C语言程序设计基础