You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从用户输入中获取重复次数最多的字母?

修改R语言代码以统计出现次数最多的字母

原代码会统计所有字符(包括符号、空格等),要实现仅统计字母并找出出现次数最多的,只需在处理前过滤掉非字母字符,同时优化变量作用域避免全局变量污染,修改后的代码如下:

a <- as.character(readline(" Please input a text:    "))

most_repeated_character <- function(x) {
  # 过滤所有非字母字符,仅保留a-z、A-Z
  filtered_text <- gsub("[^a-zA-Z]", "", x)
  
  # 处理无字母输入的情况
  if (nchar(filtered_text) == 0) {
    print("输入中不含字母,请重新输入包含字母的文本")
    return()
  }
  
  lets <- strsplit(filtered_text, "")[[1]]
  tbl <- sort(table(lets), decreasing = TRUE)
  
  print(paste("出现次数最多的字母: (", names(tbl)[1], ", ", tbl[[1]], ")", sep = ""))
  # 存在多种字母时才输出第二多的结果
  if (length(tbl) >= 2) {
    print(paste("出现次数第二多的字母: (", names(tbl)[2], ", ", tbl[[2]], ")", sep = ""))
  } else {
    print("输入中仅包含一种字母")
  }
}
most_repeated_character(a)

关键修改说明

  • 过滤非字母:用正则表达式[^a-zA-Z]匹配所有非字母字符,通过gsub替换为空,只保留有效字母。
  • 空值防护:增加判断逻辑,避免输入无字母内容时触发报错。
  • 规范变量作用域:函数内使用参数x而非全局变量a,代码逻辑更严谨。
  • 优化输出格式:通过sep=""消除拼接字符串时的多余空格,输出更整洁。

测试示例:输入Hello world &&&&时,过滤后文本为Helloworld,最终会输出出现次数最多的字母: (l, 3)。

内容的提问来源于stack exchange,提问作者learningcode

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 11:25:56