找到字符串中最长的子串

2024-04-03

我想找到字符串中最长的重复字符序列。

ex:

"aabbccc" #=> ccc
"aabbbddccdddd" #=> dddd

etc

在第一个示例中,ccc 是最长的序列,因为 c 重复了 3 次。在第二个示例中,dddd 是最长的序列,因为 d 重复了 4 次。

它应该是这样的:

b = []
a.scan(/(.)(.)(.)/) do |x,y,z|
    b<<x<<y<<z if x==y && y==z
end

但我想有一些标志来保持重复计数


这应该有效:

string = 'aabbccc'
string.chars.chunk {|a| a}.max_by {|_, ary| ary.length}.last.join

Update:

的解释|_, ary|:此时我们有一个 2 元素数组的数组。我们只需要使用第二个,而忽略第一个。如果我们这样做|char, ary|一些 IDE 会抱怨未使用的局部变量。配售_告诉 ruby​​ 忽略该值。

使用正则表达式:

我们可以使用正则表达式实现同样的目的:

string.scan(/([a-z])(\1*)/).map(&:join).max_by(&:length)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

找到字符串中最长的子串 的相关文章

  • 随机显示 NoMethodError:未定义的方法“空?”对于 0:Fixnum

    它在我的本地计算机上运行良好 但使用 Puma Web 服务器在 Heroku 上的rails admin 中出现以下错误 这是我使用 enumerize 的方式 enumerize date type in last date 0 beg
  • Base36 编码字符串?

    我一直在网上查找 但找不到解决此问题的方法 在 Python Ruby 或 Java 中 如何对以下字符串进行 Base 36 编码 nOrG9Eh0uyeilM8Nnu5pTywj3935kW 5 Ruby 以 36 为基数 s unpa
  • Ruby openssl 文档 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有 Ruby 的在线文档openssl图书馆 我能找到的只是博客文章和第三方文章 而 rdoc 本
  • 在 Ruby 控制台应用程序中获取键盘事件(无需按“Enter”输入)的最佳方法是什么?

    我在互联网上寻找这个答案已经有一段时间了 发现其他人也在问同样的事情 即使在这里也是如此 因此 这篇文章将介绍我的案例以及对我找到的 解决方案 的回应 我对 Ruby 很陌生 但出于学习目的 我决定创建一个 gem here https g
  • 查找日期时间与今天日期匹配的记录 - Ruby on Rails

    我有一个交易表 需要查找日期与今天的日期匹配的记录 从 Rails 控制台 我需要匹配的日期字段如下所示 我已经分配了一条记录来进行测试 ruby 1 9 2 p0 gt deal start gt Tue 10 May 2011 00 0
  • 将 Rails 更新到特定版本

    如何将 Rails 更新到特定版本 我的本地计算机上有 Rails 3 2 2 但我需要更新到版本 3 2 3 如果我执行gem update rails 将会更新到最新的3 2 6版本 我怎样才能做到这一点 gem install rai
  • 在 Ruby 中转义字符串

    我想在某些 Ruby 中插入以下内容作为变量的值 lt gt 用双引号将其引起来是行不通的 那么是否有一个很好的 escape until the end 之类的东西可用 不要使用多种方法 保持简单 转义 反斜杠和双引号 irb main
  • 在Ruby中做每个,如何在每n个项目中放置一个br

    假设我有 10 个项目要迭代 我想每 3 个项目放置一个 br 就像这个例子一样 我怎样才能在 Ruby 中做到这一点 1 2 3 br 4 5 6 br 7 8 9 br 10 解决方案1 1 10 each slice 3 a puts
  • 我可以通过 GH API 获取两次提交之间一个文件的差异数据吗?

    我知道如何通过 API 以及 SHA 和所有这些好东西来获取文件的提交 但是 假设我只想要 1 次提交中的文件差异或两次提交中同一文件的差异 例如 在这次提交 https github com rails rails commit ea75
  • Rails 中的代码片段应该放在哪里?

    我有这个代码片段 可以为 POST 生成签名 它的细节并不重要 但我想知道的是 由于它不是与模型相关的代码块 所以它确实可以在任何地方使用 在控制器中 在模型中 在视图助手中 即使在视图中 因此 我不确定在哪里 甚至更大的问题是 一旦将其放
  • 供用户使用的 Rails 模型结构

    我是 Rails 新手 正在开发我的第二个 Rails 应用程序 该应用程序将为用户提供不同的角色 但某些用户将具有多个角色 该网站的每个用户都将是艺术家 一些用户将担任主持人的角色 我将如何构建这个 在我使用的一些 PHP 应用程序中 只
  • 在 cygwin 和 powershell 中查看不同的 gem 列表

    我用的是gem listpowershell 和 cygwin 中的命令都显示不同的 gem 列表 Cygwin 显示 LOCAL GEMS bundler 1 2 3 json 1 7 5 minitest 2 12 1 rake 0 9
  • Rails has_many 通过带有附加属性的表单

    我正在尝试创建一个表单 允许用户向活动添加 编辑 删除位置 我目前找到的所有例子要么是HABTM表单 不允许编辑存在于表单中的附加属性 has many through配置 或仅列出现有关系 下面的图片显示了我想要完成的任务 该列表将显示每
  • 使用 ruby​​ Net::SSH 通过 sudo 读取远程文件

    我必须读取我有权 sudo 读取的远程文件的内容 猫 少或尾巴 我将在 Ruby 中执行此操作 因此我认为应该使用 Net SSH 来执行此操作 该文件是一个日志文件 因此可能会很大 这是我现在正在尝试的代码 require rubygem
  • 与 Array 相比,使用 Ruby NArray 有哪些优点?

    我刚刚遇到了 Ruby 的 NArray 库 请原谅我在问这个问题时的无知 与标准 Ruby Array 实现相比 使用 NArray 库有哪些优点 我已经看到 NArray 是面向数值计算的 但是看看 API 看起来好像只有一些针对数值的
  • 是否可以在 proc 中查看 ruby​​ 代码?

    p Proc new puts ok 是否可以在过程中看到 ruby 代码 inspect返回内存位置 puts p inspect
  • 有没有办法编写一个匹配除文件夹中的文件之外的所有文件的全局模式?

    我需要编写一个文件 glob 它将匹配除特定文件夹中包含的文件之外的所有文件 例如 除了高级文件夹中包含的文件之外的所有文件 foo 我已经到达以下区域 foo 然而 这个 glob 似乎与 Ruby 中的任何文件都不匹配File fnma
  • Ruby 中实现的所有设计模式的备忘单?

    我想知道是否有针对 Ruby 中实现的所有设计模式的备忘单 这样您就不必重新发明轮子 设计模式对于组织大量代码非常有用 因为您不需要像在 verbose algol derivitive language 中那样编写那么多代码来在 ruby
  • 在 Windows 上安装 RMagick

    我对此进行了研究 并且在我的一台计算机上花了几个小时 大约三周前 我在我的台式计算机上安装了 RMagick 它相当复杂 我不记得我采取的具体步骤 我真的很沮丧 我已将 ImageMagick 安装到我的计算机上的目录 C ImageMag
  • 使用自定义 gem 在 Dreamhost/Passenger 上部署 Sinatra 应用程序

    我有一个 Sinatra 应用程序 正在尝试在 Dreamhost 上运行 该应用程序利用 pony 发送电子邮件 为了让应用程序从一开始就启动并运行 在添加小马之前 我必须gem unpack rack and gem unpack si

随机推荐

  • ASP.Net MVC 显示格式

    在我的模型中 我的属性之一有以下 DataAnnotations Required ErrorMessage DisplayFormat DataFormatString 0 d DataType DataType Date public
  • ant/Jenkins:move不支持“安静”属性

    我的构建脚本执行
  • 如何使用主干单页应用程序在 MVC4 中测试 AntiForgeryToken

    我在获取 Microsoft 的 MVC 时遇到问题 ValidateAntiForgeryToken 使用使用 Marionette Backbone 编写的单页应用程序 SPA 问题似乎是MVC ValidateAntiForgeryT
  • 为什么 S4 类的 print 调用 `show` 时没有命名空间?

    我有一个包裹shinyjs带有一个名为show 今天 一位用户向我报告 这在使用 S4 对象时会带来问题 因为 打印 S4 对象使用show方法 它在附加时被我的包屏蔽 Example library shinyjs setClass te
  • 使用 Homebrew 在 Mac OS X 上安装 libRmath

    我想安装libRmath dylib在 Mac OS X Mavericks 上最好使用 Homebrew 因为我已经使用了这个包管理器 我没有找到公式libRmath 但我确实找到了一个公式R所以我尝试扩展它 请参阅最后的整个文件 Als
  • 使用 JULI 登录 tomcat 7 的特定应用程序?

    我在 tomcat 7 中使用 java 系统日志记录 但没有日志记录语句写入日志 我已将此文件添加到我的 WEB INF classes 中 创建了日志文件 new xyz test 因此我至少有一些正确的配置 但它是空的 没有日志语句打
  • 使用 argmax 从 Tensor 获取值

    我有一个Tensor形状的 60 128 30000 我想得到的值argmax of the 30000方面 axis 2 此代码是一个示例 tensor tf random uniform 60 128 30000 shape 60 12
  • 为多个组生成不同颜色的 ggplot2 箱线图

    我对 R 和 ggplot 相当陌生 我正在尝试生成按两个变量排序的箱线图 就我而言 物种和实验 到目前为止我通过使用得到了什么 ggplot DF aes Species Protein fill Experiment dodge Exp
  • 如何将 jsdom.jQueryify 与 jasmine-node 一起使用?

    是否可以使用 jsdom 的 jQueryify 功能来使用 jasmine node 我想做的是使用 NodeJS 来测试一些依赖于 DOM 是否存在的 JavaScript 这是我尝试过的简化案例 当我运行脚本时 茉莉花节点识别规范 但
  • 如何以编程方式在 xml 配置文件中的某些位置添加节点

    我们的软件安装在 50 台客户端 PC 上 软件从 xml 配置文件中选取值 每个客户端在配置文件中都有自己的个人节点值 真 假 现在我们发布了新版本的软件 在 xml 配置文件中添加了更多节点 我们如何将新节点添加到客户端现有的配置文件
  • TaskDescription 的主要颜色应该是不透明的 Android 6.0

    我的代码是 if Build VERSION SDK INT gt Build VERSION CODES LOLLIPOP Bitmap bm BitmapFactory decodeResource context getResourc
  • 查找与布尔查询匹配的大型 int 数组子集的算法

    假设我有一个 M 32 位整数的大数组 其中每个值的设置不超过 N 位 现在我想返回与查询 Target AND Value Target 匹配的子集 即目标位出现在数组值中设置的值 暴力破解很简单 只需迭代数组并提取其中 target v
  • Unison:仅在一个方向上同步

    如果我有文件夹 A 和 B 是否可以将新文件从 A 同步到 B 并且不删除 B 中的文件而删除 A 中的文件 也就是说 我想用B作为任何文件的大容器 包括我曾经从A同步然后删除的文件 我认为这被认为是一种 单向同步 我了解您对 Unison
  • 在 eclipse 中使用 java.io 库,以便 FileInputStream 可以读取 dat 文件

    Goal Print the data from a dat file to the console using Eclipse 长期目标 我可以将 dat 文件传递 给可执行文件 它会创建一个带有格式化数据的新 txt 文件 The da
  • jQuery Dragenter 或 Dragover 包含子项

    我目前正在编写一个上传脚本 当然它具有拖放功能 However当我将文件拖到我的元素上时 我试图让它工作 它添加了类拖累然而 因为我的元素有孩子 所以它会不断地触发 因为它进入和离开元素 我想知道什么我怎样才能扩展 dragenter dr
  • 在 Visual Studio 中查看 var 的类型

    有没有办法查看 a 的类型var在 Visual Studio 2013 代码编辑器中 当我有一个疯狂的时候linq查询 很高兴看到结果类型是什么 我不想更换var关键字与实际类型 我只想看看它是什么 还有一个键盘快捷键会向您显示 将光标放
  • Java GUI repaint() 问题?

    我有一个 JFrame 该 JFrame 包含一个 JButton 我单击 JButton 然后创建了 10 个 JTextField 问题 在通过调整窗口大小 强制重新绘制 之前我看不到它们 只有这样我才能看到创建的 JTextField
  • 安装补丁 19 后,Oracle Forms 6i 在启动时崩溃并显示 0xC0000005 [已关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 UPD 0xC0000005 是STATUS ACCESS VIOLATION 在 winnt h 中定义 这意味着应用程序尝试访问它无法
  • Python super 和设置父类属性

    我在 Python super 以及继承和属性方面遇到了一个非常奇怪的问题 首先 代码 usr bin env python3 import pyglet import pygame class Sprite pyglet sprite S
  • 找到字符串中最长的子串

    我想找到字符串中最长的重复字符序列 ex aabbccc gt ccc aabbbddccdddd gt dddd etc 在第一个示例中 ccc 是最长的序列 因为 c 重复了 3 次 在第二个示例中 dddd 是最长的序列 因为 d 重