如何查找重复字母最多的单词

2024-05-29

我的目标是找到给定字符串中重复字母最多的单词。例如,"aabcc ddeeteefef iijjfff"会回来"ddeeteefef"因为"e"在这个单词中重复了五次,这比所有其他重复字符都多。

到目前为止,这是我得到的,但它有很多问题并且不完整:

def LetterCountI(str)
  s = str.split(" ")
  i = 0
  result = []
  t = s[i].scan(/((.)\2+)/).map(&:max) 
  u = t.max { |a, b| a.length <=> b.length }
  return u.split(//).count 
end

我的代码只能找到连续的模式;如果模式被中断(例如"aabaaa",它计算三次而不是五次)。


str.scan(/\w+/).max_by{ |w| w.chars.group_by(&:to_s).values.map(&:size).max }
  • scan(/\w+/)— 创建所有“单词”字符序列的数组
  • max_by{ … }— 找到该块内给出最大值的单词
  • chars— 将字符串拆分为字符
  • group_by(&:to_s)— 创建一个哈希,将每个字符映射到所有出现的字符的数组
  • values— 只需获取所有出现的数组
  • map(&:size)— 将每个数组转换为该数组中的字符数
  • max— 找到最大的字符并将其用作结果max_by检查

Edit: 写得不太紧凑:

str.scan(/\w+/).max_by do |word|
  word.chars
      .group_by{ |char| char }
      .map{ |char,array| array.size }
      .max
end

编写的功能较少,并且使用较少的 Ruby 主义(使其看起来更像“其他”语言):

words_by_most_repeated = []
str.split(" ").each do |word|
  count_by_char = {} # hash mapping character to count of occurrences
  word.chars.each do |char|
    count_by_char[ char ] = 0 unless count_by_char[ char ]
    count_by_char[ char ] += 1
  end
  maximum_count = 0
  count_by_char.each do |char,count|
    if count > maximum_count then
      maximum_count = count
    end
  end
  words_by_most_repeated[ maximum_count ] = word
end

most_repeated = words_by_most_repeated.last
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何查找重复字母最多的单词 的相关文章

  • 在Ruby编程语言中,$的名字是什么:

    我想了解更多 但我不知道怎么称呼 015 gt gt Users Nerian rvm rubies ruby 1 9 3 rc1 lib ruby site ruby 1 9 1 Users Nerian rvm rubies ruby
  • 无主键的 ActiveRecord 模型

    我有一个 ActiveRecord 模型GPA没有主键 class GPA lt ActiveRecord Base end 当我尝试打电话时GPA first to json I get TypeError false is not a
  • 运行“bundle install”失败并要求我运行“bundle install”

    事实上 当从我从 git 存储库克隆的现有 Rails 应用程序内部运行时 所有与 gem 相关的命令都会导致相同的错误消息 bundle install Could not find tzinfo 0 3 27 in any of the
  • 葡萄错误处理策略?

    我正在使用 Grape 和 Rails 创建 REST API 我已经有了基本的架构 并且正在寻找可以 清理 东西的地方 其中之一是错误处理 处理 我目前正在修复整个 API 的 root rb GRAPE API 基类 文件中的错误 我对
  • 使用 gem 添加辅助方法

    我找到了很多有关添加表单辅助方法的信息 请参阅我的其他问题之一 但我找不到有关添加辅助方法的任何信息 就好像它们是在application helper rb 我尝试过复制application helper rb从 Rails 应用程序到
  • 无||假与假||红宝石中的零

    nil false回报false and false nil回报nil 有人对此有解释吗 在 Ruby 中 一切都是表达式 表达式将返回其中计算的最后一个值 对于您的两个示例 左侧 表达式的计算结果为假值 因此 Ruby 然后计算右侧并返回
  • 将对象数组转换为 ActiveRecord::Relation

    我有一个对象数组 我们称其为Indicator 我想运行 Indicator 类方法 def self subjects该数组上的种类 范围等 我知道在一组对象上运行类方法的唯一方法是让它们成为 ActiveRecord Relation
  • 如何在没有 sudo 的情况下安装 gem

    在我所有的 gem 安装中 我必须执行 sudo 所以 sudo gem 安装rails 会起作用 而只有 宝石安装导轨 不管用 我该如何补救 我安装了rvm murtaza murtaza dev which rvm home murta
  • 捆绑安装无法安装 libxml-ruby

    我是 Ruby 世界的新手 我需要克隆一个现有项目 说明是 source env development bundle install 但它失败了 Using libv8 3 16 14 15 Fetching libxml ruby 2
  • ruby require 问题(与 $LOAD_PATH 有关)

    我正在尝试使用我刚刚安装的 gem 通过sudo gem install excelsior 像这样 需要 红宝石 要求 精益求精 这在 irb 中工作得很好 但是当我将完全相同的代码粘贴到 rb 文件中并尝试使用 ruby 运行它时 我得
  • 在 Rails 6 上添加外部 js 文件

    我在 app gt javascript gt packs 下创建了一个名为 custom 的文件夹 并放置以下外部 js metisMenu min js startmin js 然后在 app gt javascript gt pack
  • 用于从 Open3.popen3 标准输出中提取值的正则表达式

    如何获取外部命令的输出并从中提取值 我有这样的事情 stdin stdout stderr wait thr Open3 popen3 path foobar configfile if exit 0 wait thr value to s
  • 哈米尔评论结束

    我是哈米尔新手 这让我很困惑 我不喜欢删除可以注释掉的代码 但我不知道如何在 haml 中正确结束注释 这是一个代码片段 field f label member id br f text field member id field f l
  • 重写的方法仍然被调用

    我正在使用一个正在实现的库belongs to数据库中两个条目之间的关联 由于这不是我需要的行为 我想通过重写此方法prepend 但 pry 告诉我 原来的方法仍然被调用 我仔细检查了一下 我使用的是 ruby 2 0 前置的代码 mod
  • 剥掉所有的身体标签而不毁掉他们的孩子

    此 Ruby 代码使用Nokogiri http nokogiri org doc xpath tbody remove 删除 的子项 tbody 以及 tbody 他们自己 我只想删除所有 tbody 文档中的标签 将其子项留在原处 我怎
  • EventMachine 的优势是什么

    这是我的测试用例 我发现EM并不比一般的TCP服务器快 EM 服务器 require rubygems require benchmark require eventmachine class Handler lt EventMachine
  • 使用 authlogic-oauth2 服务器无法启动

    我已将 oauth2 和 authlogic oauth2 包含在 gemfile 中 因为我想使用它们并尝试启动服务器 它没有启动并给我错误 Library Ruby Gems 1 8 gems railties 3 0 3 lib ra
  • 为什么 Ruby 中的 Dir.glob 看不到用方括号命名的文件夹中的文件?

    我有这棵树 folders foo fuu flac foo bar fuu flac foo bar fuu flac test rb 和这段代码 bin env ruby encoding utf 8 Dir glob folders
  • 如何比较两个哈希值?

    我正在尝试使用以下代码比较两个 Ruby 哈希 usr bin env ruby require yaml require active support file1 YAML load File open en 20110207 yml f
  • Ruby on Rails Active Record RANDOM() 在循环内始终相同

    当每次循环迭代应该抓取随机记录时 为什么会重复输出相同的记录 ID count 0 while count lt 20 puts ID SomeModel where assoc id 10 order RANDOM limit 1 fir

随机推荐