草庐IT

swift - 不要给我五个挑战—— swift

coder 2023-09-09 原文

在 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/

有关swift - 不要给我五个挑战—— swift的更多相关文章

  1. ruby - 发送信号时运行代码,但不要在 Ruby 中捕获信号 - 2

    我有在服务器上运行的代码,在服务器硬关闭之前,发送了一个信号SIGTERM让我的代码知道它需要清理。我想在发生这种情况时运行代码并将信号发送回同一个程序,以便任何其他需要清理的代码都可以这样做。我不想捕获信号或改变信号行为,我只需要在我的程序的其余部分解释SIGTERM之前运行一些东西。目前我可以做类似的事情Signal.trap('TERM')doputs"Gracefulshutdown"exitend但如果同一个应用中的多段代码试图做同样的事情,它就不起作用了。例如:Signal.trap('TERM')doputs"Gracefulshutdown"exitendSignal.

  2. ruby-on-rails - Ruby 挑战 - 方法链和惰性求值 - 2

    看完文章http://jeffkreeftmeijer.com/2011/method-chaining-and-lazy-evaluation-in-ruby/,我开始寻找更好的方法链和惰性求值解决方案。我想我已经用以下五个规范概括了核心问题;谁能让他们全部通过?任何事情都可以:子类化、委托(delegate)、元编程,但不鼓励后者。最好将依赖性保持在最低限度:require'rspec'classFoo#EpiccodehereenddescribeFoodoit'shouldreturnanarraycorrespondingtothereverseofthemethodchai

  3. ruby-on-rails - Rails 中每个循环的最后一次迭代不要有逗号 - 2

    我想在Rails中打印出以逗号分隔的链接列表。这是我得到的:">,这是我想要的:ThingA,ThingB,ThingC但是现在我在循环的最后一次迭代中得到了一个额外的逗号!我该怎么办? 最佳答案 一种方法是使用map然后Array#join: 关于ruby-on-rails-Rails中每个循环的最后一次迭代不要有逗号,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/266957

  4. ruby-on-rails - 我如何解析一个 Excel 文件,它会给我提供与视觉上完全一样的数据? - 2

    我正在使用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文档并准确获取我所看到的内容?我不在

  5. ruby - 调用 super 时不要传递 block - 2

    如何为super调用设置一个block为nil?classAdeffooifblock_given?result=yield#dostuffwiththeyieldresultend#somemorecodeendendclassBblockcalled#=>blockcalled我不想让block两次。block_given?在类A中是否有可能返回false?背景是我不拥有A类,我无法更改它的foo方法,但我想避免调用我的block两次。我也不想将虚拟/空block传递给super,因为A的foo方法的行为在给定block时发生变化。 最佳答案

  6. ruby - 不要将所需文件包含到 vim omnicompletion 中 - 2

    如果我尝试在具有require'xxx'语句的Ruby文件中自动完成smth,它会开始扫描所需的所有文件(以及所需文件所需的文件)。而且它每次都怪怪的!是否可以让vim自动完成不扫描所需文件或只扫描特定路径中的文件(例如app/only)? 最佳答案 以下其中一项应该有效:setpath=.,/myinclude1,/myinclude2设置自己的包含路径:setcomplete-=i禁止在默认补全中使用包含的文件:setinclude=取消设置包含文件匹配模式我建议你使用第二个,这样CTRL-XCTRL-I仍然可以正常工作

  7. ruby - 为什么需要 mongo 给我 LoadError : no such file to load -- openssl - 2

    我正在使用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

  8. ruby-on-rails - 如何告诉 Builder 不要转义值 - 2

    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不要

  9. ruby - 什么会给我类似 ruby​​ readline 的默认值? - 2

    如果我想在终端上提示已输入默认值,我该怎么做?Ruby的标准Readline.readline()让我设置历史但不填写默认值(至少据我所知)我想要这样的东西:代码:input=Readline.readline_with_default('>','default_text')控制台:>default_text| 最佳答案 Readline可以满足您的要求。有一个回调,您可以在显示提示后获得控制权,并将一些文本插入读取缓冲区。这对我有用:Readline.pre_input_hook=->doReadline.insert_text"

  10. ruby-on-rails - Rails 3. simple_format 不要将结果包装在段落标签中 - 2

    如何使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

随机推荐