有一个字符串,其中包含了多个数字子串,要求求出最长的递增数字子串,比如,s='asdf1123as456df112365asdfa'中最长递增数字子串是11236.
string="asdfasdfasdf1111112222222356789462124asdfasdfasdfa9874563214756asdfasdfasdfasdfasdfasdfalkjlaskdjflkasdf124578"
s=string.scan(/\d+/)
#t=s[1].split //
#puts t.size
#print t,"\n"
ss=[]
hash={}
max=tt=0
s.each do |t|
t=t.split //
for i in 0...(t.size)
if(t[i+1]&&t[i+1]>=t[i])
ss<<t[i]
tt+=1
if(tt>max)
max=tt
hash[ss.join('')]=max
end
else
ss<<t[i]
hash[ss.join('')]=ss.size
ss=[]
tt=0
end
end
end
puts hash.sort_by {|k,v|k.size}.last[0]
#puts hash
应该会有更简洁的方法的,慢慢再想!!!!
分享到:
相关推荐
最长递增子序列问题是在一个数组中找到最长的严格递增的子序列。动态规划能够提供一个高效的解决方案。 文件“Dynamic Programming Interview Questions Solved in C++”中提到的每一个问题都为C++面试者提供了...
最长递增子序列 中等 331 验证二叉树的前序序列化 中等 338 比特位计数 中等 354 俄罗斯套娃信封问题 困难 503 下一个更大元素 II 中等 706 设计哈希映射 简单 1047 删除字符串中的所有相邻重复项 简单 1629 按键...
6. **出现次数超过一半的数字**:寻找数组中出现次数超过一半的元素,布隆过滤器可以辅助解决。 #### 动态规划 5. **最大连续乘积子串**:求解字符串中最大连续子串的乘积,可以使用动态规划来避免重复计算。 6. **...
第一章 字符串 o 1.0 本章导读 o 1.1 旋转字符串 o 1.2 字符串包含 o 1.3 字符串转换成整数 o 1.4 回文判断 o 1.5 最长回文子串 o 1.6 字符串的全排列 o 1.10 本章习题 第二章 数组 o 2.0 本章导读 o 2.1 寻找最小的...
例如,在一个整数数组中,我们可能寻找一个没有重复数字的最长递增子序列。而在字符串中,最长子序列可能是最长的无重复字符的子串。 Visual C++是一种C++编译器,由微软开发,它提供了一个集成开发环境,支持C++...
12. 数串:可能是寻找数字序列的特定属性,如最长递增子序列、最长公共子序列等。 13. 求最长公共子串:这是字符串处理中常见问题,可以使用动态规划解决。 14. 求关键点和桥:可能涉及到图的结构分析,寻找图中的...
最长连续递增序列寻找最长递增子序列,NC17.最长回文子串通过双指针找到回文串,NC28.最小覆盖子串则需要双指针配合字符串操作。 7. **深搜**:HJ41.称砝码是一个典型的深度优先搜索(DFS)题目,通常涉及递归或栈的...
leetcode 跳跃 LeetCode 12.整数转罗马 13.罗马数字转整数 17.电话号码的字母组合 20.有效的括号 ...300.最长递增子序列 322.零钱兑换 509.斐波那契数 36.有效的数独 49.字母异位词分组 45.跳跃游戏Ⅱ
动态规划:动态规划是解决最优化问题的强大工具,如“背包问题”、“最长递增子序列”。 学习LeetCode,不仅可以提升编程能力,还可以加深对数据结构和算法的理解。通过实践题目,可以训练解决实际问题的能力,有助...
6. **最长递增子序列**: 在一个序列中找到长度最长的严格递增子序列。 **动态规划的特点** 1. **重叠子问题**: 大问题的解往往包含重复计算的子问题,动态规划通过存储子问题的解避免重复计算。 2. **最优子结构*...
许多常见的问题,如背包问题、最短路径问题、最长递增子序列等,都可利用动态规划来解决。动态规划不仅提高了问题解决的效率,而且在许多情况下,它还能够找到问题的最优解。因此,理解和掌握动态规划对于提升个人在...
- 最长递增子序列:找到一个序列的最长非降序子序列。 - 最短路径问题:如Floyd-Warshall算法用于寻找图中所有顶点之间的最短路径。 - 最长公共子序列:两个字符串的最长相同子序列。 - 编辑距离:衡量两个字符串...
动态规划求最长上升子序列**:这是一个经典的动态规划问题,旨在寻找给定序列中最长的递增子序列,通常使用dp数组来记录每一步的最优解。 #### 二、回溯算法 **回溯算法**是一种通过尝试解决问题的不同可能性来...
- **字符串操作**:寻找最长递增子串,可以使用滑动窗口或者动态规划方法。 - **完全二叉树证明**:完全二叉树是每一层都尽可能满的树,最后一层的叶子节点都在左边。 - **二叉树遍历**:需要熟悉前序、中序和...
最少有K个重复字符的最长子串 最大限度 0160 两个链表的交集 0148 排序表 AY 0162 寻找峰值元素 0179 最大数 星期日 0131 回文分区 0108 将有序数组转换为二叉搜索树 第 9 周问题列表: 杰森 0277 找名人 0136 单号 ...
最长连续递增序列**、**NC17.最长回文子串**、**NC28.最小覆盖子串**:寻找序列中的特定模式或最长子序列。 - **HJ41.称砝码**:可能涉及二进制搜索或者动态规划解决平衡问题。 - **leetcode 994.腐烂的橘子**、**...
最长子序列问题是指在一个序列中找到最长的递增子序列。 **13.11 最大子串匹配** 最大子串匹配是指在一个字符串中找到最长的重复子串。 **13.12 最大子段和** 最大子段和是指在一个数组中找到连续子数组的最大和。
5. **动态规划**:包括LCS(最长公共子序列)、最长递增子串、三角剖分等经典问题,以及记忆化策略提升效率。 6. **博弈类算法**:如博弈树和二进制搜索,应用于游戏理论问题。 7. **最大团与最大独立集**:在图论...