感謝在Ruby-talk上的:
Chris Carter
David A. Black
Harry
Robert Dober
James Edward
:)
原本的程式碼太長,而且使用內建的功能組合起來就好
再者,原本的程式會把陣列的元素強制轉型為String
新的程式碼為:
class Array
def longest
# Harry <http://www.kakueki.com/ruby<wbr></wbr>/list.html>
self.select{|r| r.to_s.size == self.max{|x, y| x.to_s.size <=> y.to_s.size}.to_s.size}
end
end
這個程式是由Harry所寫出的,底下轉貼原文:
> Thanks for your reply, I learned more on this thread :P
> But I have a question:
> If I have an array contain:
> ary = [1, 12, 234, "456"]
> there has two elements which size is 3, but the longest method just returned
> one of them.
> I can't solve it :(
>
Is this what you are looking for?
Do you want all longest elements?
big = [1, 12, 234,45,978, "456"].max {|x,y| x.to_s.size <=> y.to_s.size}
p [1, 12, 234,45,978, "456"].select {|r| r.to_s.size == big.to_s.size}
<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-1447561-1";
urchinTracker();
</script>
分享到:
相关推荐
**最长公共子序列(Longest Common Subsequence, LCS)算法** 最长公共子序列问题是一个经典的计算机科学问题,它涉及到寻找两个或多个字符串之间的最长子序列,这个子序列并不需要连续,但必须保持原有的顺序。在...
"LIS"通常指的是Longest Increasing Subsequence,这是一个经典的算法问题,在编程竞赛中常见,尤其是在UVa(University of Virginia Online Judge)等在线判题系统中。 描述提到"ACM LIS.cpp help you to let UVa ...
在实际应用中,递归图不仅仅用于视觉展示,还可以进一步计算各种定量指标,如复发率(Recurrence Rate)、最长不复发时间(Longest Diagonal)、分岔指数(Divergence Exponent)等,这些指标有助于量化时间序列的...
这是动态规划中,求最长公共子序列(Longest common string)的源代码。自己编写执行。程序简单,有注释。
LeetCode-3.Longest_Substring_Without_Repeating_Characters 给定一个字符串,找出没有重复字符的最长子字符串的长度。 示例 1: 输入:“abcabcbb” 输出:3 解释:答案是“abc”,长度为 3。 解决方案 Python3:...
【外研版八年级英语下期中考试复习资料选择题精选】 这些题目涵盖了英语语法、词汇、句型和日常表达等多个方面,对于学生巩固基础知识、提高语言运用能力具有重要作用。以下是对部分题目及其所涉及知识点的详细解析...
最长公共子序列(Longest Common Subsequence,简称LCS)是计算机科学中一种经典的问题,主要涉及字符串或序列的比较和分析。这个问题在文本编辑器的差异计算、生物信息学的DNA序列比对以及程序代码的相似性检测等多...
标题中的"LCS.rar"指的是一个压缩包文件,其中包含了与最长公共子序列(Longest Common Subsequence, LCS)算法相关的代码。LCS是一种在计算机科学中广泛使用的算法,主要用于找出两个序列之间的最长子序列,而这...
这篇文档是江苏省新沂市王楼中学2014-2015学年八年级英语上学期的第一次月考试题,使用的教材版本为牛津版。这份试题旨在测试学生在英语科目的单项选择能力,涵盖了语法、词汇、句型理解和日常交际用语等多个知识点...
最长公共子序列(Longest Common Subsequence,简称LCS)是一种经典的计算机科学问题,主要应用于比较和分析序列,如文本、DNA序列或编程语言源代码。LCS算法旨在找到两个给定序列之间的最长子序列,这个子序列并不...
1. **构建部分匹配表**:对于模式串P,我们需要计算出一个长度为m的数组LPS(Longest Proper Prefix which is also a Suffix),即模式串中每个位置i的最长前缀与后缀相同长度的值。LPS[0]始终为0,从第二个字符开始...
最长公共子序列(Longest Common Subsequence,简称LCS)是计算机科学中一种经典的字符串问题,广泛应用于文本比较、生物信息学等领域。在这个问题中,我们寻找两个序列(通常是字符串,但也可以是任意序列,如数字...
1. 初始化部分匹配表LPS(Longest Proper Prefix which is also Suffix)为全0。 2. 遍历模式串,用前缀和后缀进行比较,如果发现有相同的前缀和后缀,则更新LPS对应位置的值。 3. 在比较过程中,若发现前缀和后缀...
最长公共子序列(Longest Common Subsequence, LCS)是计算机科学中一种经典的字符串问题,它在序列比对、数据挖掘、生物信息学等领域有广泛应用。本压缩包“LCS.rar”包含了一个用C++实现的LCS算法,同时也提到了与...
最长公共子序列(Longest Common Subsequence,简称LCS)是计算机科学中一种经典的问题,主要涉及字符串或序列的比较。在本压缩包文件"LCS.rar"中,包含了一个名为"LCS"的程序,该程序可能用C++实现了KMP算法来解决...
c++ C++_leetcode题解674. Longest Continuous Increasing Subsequence.cpp
- 构建部分匹配表:对于模式串P,我们从左到右遍历,计算出每个位置的前缀和后缀的最大公共长度,将其存入部分匹配表LPS(Longest Proper Prefix which is also Suffix)。例如,模式串"PAT"的LPS为[0, 0, 1],表示...
在计算机科学领域,解决实际问题时常会遇到路径寻找的问题,例如“最长最短路线”(Longest Shortest Route)。这个问题是图论中的一个重要子问题,涉及到网络优化、物流配送、交通规划等多个领域。在本文中,我们将...
leetcode二维数组搜索leetcode 对于 Leetcode 和其他算法问题 文件描述 2_add_two_numbers.c : 两个数相加 3_solution.c : 无重复字符的最长子串 ..../14_longest_common_prefix.c : 最长公共前缀 ./19_Remo
- **LCP(Longest Common Prefix)**:最长公共前缀,指两个字符串的最长共享前缀。 - **Height数组**:记录相邻后缀间的LCP长度,可在O(1)时间内查询,通过预处理实现。 #### 后缀数组的应用 1. **多模式串的模式...