草庐IT

查找算法

全部标签

ruby - 从数组中查找符合条件的前 n 个元素

我想选择一个数组中符合特定条件的前10个元素,而不必遍历整个数组。我知道find给我第一个元素。例如,下面的代码给出了第一个大于100的素数:require'prime'putsPrime.find{|p|p>100}#=>101有没有办法得到前10个大于100的素数? 最佳答案 在Ruby2.0+中你可以这样写:require'prime'Prime.lazy.select{|p|p>100}.take(10).to_a#=>[101,103,107,109,113,127,131,137,139,149]

ruby - 在字符串数组中查找公共(public)字符串( ruby )

假设我有一个包含3个字符串的数组:["Extratvinbedroom","Extratvinlivingroom","Extratvoutsidetheshop"]如何找到所有字符串共有的最长字符串? 最佳答案 这是一种ruby风格的实现方式。但是,如果您有一堆字符串或者它们很长,您应该使用更高级的算法:deflongest_common_substr(strings)shortest=strings.min_by&:lengthmaxlen=shortest.lengthmaxlen.downto(0)do|len|0.upto

ruby - 如何在 Ruby 中查找字符串的所有循环?

我用Ruby写了一个方法来找到一个文本的所有循环组合x="ABCDE"(x.length).timesdoputsxx=x[1..x.length]+x[0].chrend有没有更好的方法来实现这个? 最佳答案 这是另一种方法。str="ABCDE"(0...str.length).collect{|i|(str*2)[i,str.length]}我使用了范围和#collect并假设您想要对字符串执行其他操作(而不仅仅是打印它们)。 关于ruby-如何在Ruby中查找字符串的所有循环?,

ruby - 如何在二维数组中查找

我正在尝试学习如何在二维数组中进行搜索;例如:array=[[1,1],[1,2],[1,3],[2,1],[2,4],[2,5]]我想知道如何在数组中搜索格式为[1,y]的数组,然后显示其他y数字是什么:[1,2,3]。如果有人能帮助我了解如何仅使用数字进行搜索(因为我发现的很多示例都包含字符串或哈希),甚至可以帮助我了解在哪里寻找正确的资源,那将会很有帮助。 最佳答案 Ruby允许您通过在block参数中使用圆括号来查看元素。select和map只分配一个block参数,但您可以查看元素:array.select{|(x,y)|

常见搜索模板DFS+BFS+二分搜索【算法】

 本篇讲的是常见的搜索模板,搜索题的解法时比较固定的,只要把模板记熟,加上自己找几道习题练习体会后,相信各位下次遇到这类题一定能拿下!!下面我将已典型的题目为例子介绍几种常见的搜索方式。 1.二分搜索二分搜索代码模板:例题:#includeusingnamespacestd;doublen;constdoubleeps=1e-12;//二分搜索intmain(){ intt; cin>>t; while(t--){ cin>>n; doublel=0,r=100000,res=-1; while(ln)r=mid-0.0001; elseif(mid*mid*mid二分搜索是只能对有

BF算法(暴⼒算法)-- 模式匹配算法

引言BF算法的实现过程很“无脑”,不包含任何技巧,在对数据量大的串进行模式匹配时,算法的效率很低。暴⼒算法(BF算法)暴力(BruteForce)算法:是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和T的第二个字符;若不相等,则比较S的第二个字符和T的第一个字符,依次比较下去,直到得出最后的匹配结果。BF算法是一种蛮力算法。暴力求解法暴力求解法:又名直接带入法(DirectlyCalculating)它是已知最古老的算法之一,与"直观目测法","心灵感应法"并称世界三大不可思议数学计算法则,其可追溯至3200年前,

【数据结构和算法】实现带头双向循环链表(最复杂的链表)

前文,我们实现了认识了链表这一结构,并实现了无头单向非循环链表,接下来我们实现另一种常用的链表结构,带头双向循环链表。如有仍不了解单向链表的,请看这一篇文章(7条消息)【数据结构和算法】认识线性表中的链表,并实现单向链表_小王学代码的博客-CSDN博客目录前言一、带头双向循环链表是什么?二、实现带头双向循环链表1.结构体和要实现函数2.初始化和打印链表3.头插和尾插4.头删和尾删5.查找和返回结点个数6.在pos位置之前插入结点7.删除指定pos结点8.摧毁链表三、完整代码1.DSLinkList.h2.DSLinkList.c3.test.c总结前言带头双向循环链表,是链表中最为复杂的一种结

ruby - 为 OmniAuth 查找加载的提供程序

我想知道哪些供应商已被加载以供OmniAuthgem使用.我试过这个:OmniAuth::Strategies.constants#amethodprovidedbythestandardlibModuleclass#=>[:Developer,:OAuth,:Twitter]还有这个:OmniAuth.strategies.inspect#amethodprovidedbytheOmniAuthclass,butwhichhasnodocumentationorcommentsaroundit.#=>[OmniAuth::Strategies::OAuth]我期望(或想要)的答案是[

ruby-on-rails - 如何查找上个月创建的记录?

我有一张表,每天都会添加新记录。我将如何查找上个月创建的记录? 最佳答案 设置命名范围:named_scope:in_last_month,:conditions=>["records.created_at>?",1.month.ago]调用它(在你的Controller中):Record.in_last_month 关于ruby-on-rails-如何查找上个月创建的记录?,我们在StackOverflow上找到一个类似的问题: https://stacko

c# - 以与 SO 在版本页面上相同的方式区分两个字符串的算法是什么?

我正在尝试按短语区分两个字符串,类似于StackOverflow在版本编辑页面上区分两个字符串的方式。执行此操作的算法是什么?是否有gems或其他标准库可以实现此目的?编辑:我见过其他差异算法(Differ与Ruby),它们似乎导致以下结果:>>o='nowisthetimewhenallgoodmen.'>>p='nowsometimethementimewhenallgoodmen.'>>Differ.diff_by_word(o,p).format_as(:html)=>"nowsomeistimethementimewhenallgoodmen."请注意每个单词的单词是如何区分