在 codewars.com 上,我真的很纠结这个套路。我是一个完全的初学者,所以我不想要解决方案,但如果有人可以将我推向正确的方向。
“在这个 kata 中,您将获得一个区域的开始编号和结束编号,并且应该返回除其中带有 5 的数字之外的所有数字的计数。开始和结束编号都包括在内!
例子:
1,9 -> 1,2,3,4,6,7,8,9 -> 结果 8
4,17 -> 4,6,7,8,9,10,11,12,13,14,16,17 -> 结果 12"
到目前为止,我已经试过了,但我不知道是否有办法搜索所有包含 5 的数字。有没有办法像我们在线上的“*”那样添加一个通用的字符搜索?
func dontGiveMeFive(_ start: Int, _ end: Int) -> Int {
var rez = 0
var ints = [String]()
for i in start...end {
if ints.contains("5") {
rez += 1
}
}
return rez
}
注意: 解决示例并不难,但是当您考虑一些不能被 5 整除的数字时会出现问题。例如 51、52、53....或 425980 :)
最佳答案
有两种不同的方法来进行检查 - 使用字符串转换和使用数学。
使用数学的方法使用较少的 CPU 能力,但使用字符串的方法通常需要较少的输入。
使用数学方法执行这两个步骤,直到被检查的数字减少到零:
要检查 Int n 的最后一位十进制数字是否为 5,请使用 n % 10 == 5 表达式。运算符%返回n除以10后的余数,即n最后一位的数值。
要删除最后一位数字,请使用 n/= 10。因为整数除法会截断任何小数部分。
关于swift - 不要给我五个挑战—— swift ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46592788/
我有在服务器上运行的代码,在服务器硬关闭之前,发送了一个信号SIGTERM让我的代码知道它需要清理。我想在发生这种情况时运行代码并将信号发送回同一个程序,以便任何其他需要清理的代码都可以这样做。我不想捕获信号或改变信号行为,我只需要在我的程序的其余部分解释SIGTERM之前运行一些东西。目前我可以做类似的事情Signal.trap('TERM')doputs"Gracefulshutdown"exitend但如果同一个应用中的多段代码试图做同样的事情,它就不起作用了。例如:Signal.trap('TERM')doputs"Gracefulshutdown"exitendSignal.
看完文章http://jeffkreeftmeijer.com/2011/method-chaining-and-lazy-evaluation-in-ruby/,我开始寻找更好的方法链和惰性求值解决方案。我想我已经用以下五个规范概括了核心问题;谁能让他们全部通过?任何事情都可以:子类化、委托(delegate)、元编程,但不鼓励后者。最好将依赖性保持在最低限度:require'rspec'classFoo#EpiccodehereenddescribeFoodoit'shouldreturnanarraycorrespondingtothereverseofthemethodchai
我想在Rails中打印出以逗号分隔的链接列表。这是我得到的:">,这是我想要的:ThingA,ThingB,ThingC但是现在我在循环的最后一次迭代中得到了一个额外的逗号!我该怎么办? 最佳答案 一种方法是使用map然后Array#join: 关于ruby-on-rails-Rails中每个循环的最后一次迭代不要有逗号,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/266957
我正在使用Rails5(Ruby2.4)。我想阅读.xls文档,我想将数据转换为CSV格式,就像它出现在Excel文件中一样。有人推荐我使用Roo,所以我有book=Roo::Spreadsheet.open(file_location)sheet=book.sheet(0)text=sheet.to_csvarr_of_arrs=CSV.parse(text)但是,返回的内容与我在电子表格中看到的内容不同。例如,电子表格中的一个单元格有16:45.81当我从上面获取CSV数据时,返回的是"0.011641319444444444"如何解析Excel文档并准确获取我所看到的内容?我不在
如何为super调用设置一个block为nil?classAdeffooifblock_given?result=yield#dostuffwiththeyieldresultend#somemorecodeendendclassBblockcalled#=>blockcalled我不想让block两次。block_given?在类A中是否有可能返回false?背景是我不拥有A类,我无法更改它的foo方法,但我想避免调用我的block两次。我也不想将虚拟/空block传递给super,因为A的foo方法的行为在给定block时发生变化。 最佳答案
如果我尝试在具有require'xxx'语句的Ruby文件中自动完成smth,它会开始扫描所需的所有文件(以及所需文件所需的文件)。而且它每次都怪怪的!是否可以让vim自动完成不扫描所需文件或只扫描特定路径中的文件(例如app/only)? 最佳答案 以下其中一项应该有效:setpath=.,/myinclude1,/myinclude2设置自己的包含路径:setcomplete-=i禁止在默认补全中使用包含的文件:setinclude=取消设置包含文件匹配模式我建议你使用第二个,这样CTRL-XCTRL-I仍然可以正常工作
我正在使用UbuntuServer10,Ruby1.9.2当我尝试要求'mongo'时它给我这个错误:irb(main):001:0>require'mongo'LoadError:nosuchfiletoload--opensslfrom/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in`require'from/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in`require'from/usr/local/lib
ruby-1.8.7-p249>xml=Builder::XmlMarkup.new=>ruby-1.8.7-p249>xml.foo'wow'=>"<b>wow</b>"ruby-1.8.7-p249>Builder正在转义内容并将b标记转换为转义值。我如何告诉Builder不要逃避它?我正在使用Ruby1.8.7。 最佳答案 Builder::XmlMarkup#xml.foodoxmlwow'end 关于ruby-on-rails-如何告诉Builder不要
如果我想在终端上提示已输入默认值,我该怎么做?Ruby的标准Readline.readline()让我设置历史但不填写默认值(至少据我所知)我想要这样的东西:代码:input=Readline.readline_with_default('>','default_text')控制台:>default_text| 最佳答案 Readline可以满足您的要求。有一个回调,您可以在显示提示后获得控制权,并将一些文本插入读取缓冲区。这对我有用:Readline.pre_input_hook=->doReadline.insert_text"
如何使simple_format不将返回值包装在p标签中?simple_format"*" 最佳答案 您可以指定wrapper_tag选项。simple_format'Hello',{},wrapper_tag:'span'此代码将是:Hello 关于ruby-on-rails-Rails3.simple_format不要将结果包装在段落标签中,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/ques