Kotlin:游程编码

2024-01-11

该程序可以运行,但是,我仍然遇到逻辑错误:最后一个字母没有运行完毕。例如,当我输入 aaaabbbbccccdddd 时,我得到的输出是 a4b4c4 但没有 d4。

fun main () {

    val strUser = readLine()!!.toLowerCase()
    val iLength = strUser!!.length
    var iMatch : Int = 0
    var chrMatch : Char = strUser[0]

    for (i in 0..iLength) {

        if (strUser[i] == chrMatch) {

            iMatch += 1
        }else {
            print("$chrMatch$iMatch")
            chrMatch = strUser[i]
            iMatch = 1

        }


    }


}

解决方案有很多,但最好的是RegExp

fun encode(input: String): String =
    input.replace(Regex("(.)\\1*")) {
        String.format("%d%s", it.value.length, it.groupValues[1])
    }

demo https://regex101.com/r/8DC57b/1

测试结果

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

Kotlin:游程编码 的相关文章

随机推荐

  • 具有混合条件的 LINQ to SQL 复杂联接

    我有一个 SQL 语句 正在尝试将其转换为 LINQ to SQL 并且我已成功将其大部分转换 但遇到了一个我无法在 LINQ 中理解的语句 SQL 查询中令人头疼的部分是 SELECT FROM step INNER JOIN actio
  • 如何使用 Liquid 模板语言在布局中渲染模板?

    我正在尝试在液体布局中渲染液体模板 液体模板语言 而不是 CSS 液体布局内容 我似乎无法渲染布局部分 目前使用 assigns page name gt test layout Liquid Template parse File new
  • R Shiny Tabsets 同时处理

    我有一个RShiny应用程序 它计算不同选项卡中的多个统计数据 由于计算相当密集 我使用submitButton以防止发生反应 我的问题是现在每个计算 全部在不同的选项卡集中 都将输出写入文件夹 我想要Shiny初始化时为所有选项卡集写入输
  • 计算文件中特定字符串的出现次数

    这是我已经处理过的代码 while lineContents tempFileReader readLine null String lineByLine lineContents replaceAll System getProperty
  • 有效的成员指针可以与 NULL 指针具有相同的值吗?

    根据ABI http refspecs linux foundation org cxxabi 1 83 html member pointers 指向数据成员的指针是相对于基地址的偏移量 包含它的类对象 NULL 指针表示为 1 但是 根
  • Eclipse 有缩进指南吗?

    最近 我使用 Eclipse 来编辑我的 python 代码 但缺少缩进指南 我感觉不太好 那么如何为 Eclipse 添加自动缩进指南呢 有特定的插件吗 更重要的是 我已经尝试过EditBox 但是 你知道 在某些主题下这不是很自然 有一
  • 添加两个文本框中的值并在第三个文本框中显示总和

    我尝试将此代码从 textbox1 text 和 textbox2 text 添加到 textbox3 text private void textBox1 TextChanged object sender EventArgs e if
  • 3D 数组声明时出现错误

    可能是我第一次使用 3D 数组 我只是尝试遵循 1D 和 2D 语法来声明 3D 但编译器说类型不匹配 谁能告诉我这背后的原因吗 Integer 1D new Integer 2 4 6 5 6 Integer 2D new Integer
  • 维护跨多个表的实体的审核日志

    我们有一个实体分为 5 个不同的表 其中 3 个表中的记录是强制性的 其他两个表中的记录是可选的 基于实体的子类型 其中一张表被指定为实体主表 其他四个表中的记录由 master 中的唯一 id 作为键控 在每个表上都存在更新 删除触发器之
  • 获取不属于另一个表中某个类别的供应商

    我正在寻找一个查询 需要显示供应商表中没有类别 1 Products CategoryID 1 的产品的所有供应商 每当我运行它时 它总是会出错 Select SupplierID From Suppliers su where Suppl
  • 即使 paranoid 设置为 true,Sequelize.js 仍然会删除表行

    我无法让 Sequelize js 软删除表中的行 我使用 Sequelize cli 来完成所有迁移 并且没有使用同步功能在启动时重新同步数据库 我的迁移和模型中有时间戳字段 甚至有deletedAt字段 模型也有偏执 true 无论如何
  • 如何解决 Visual Studio 2008 中的 JQuery 智能感知问题?

    我怎样才能解决这个问题 更新JScript IntelliSense时出错 D myProject js jquery 1 3 2 js 对象不支持此属性或方法 2139 1 我做了所有这一切jQuery 1 2 6 的 Visual St
  • GWT 获取 CellTable 内容以进行打印或导出

    我有一个 GWTCellTable使用某种复杂而乏味的过程来填充 我希望用户能够打印或导出该表中的数据 我宁愿不重新渲染表内容以进行导出 因为这是一个繁琐的过程 如何从我的所有页面中获取所有行的内容CellTable这样我就可以整理一份文件
  • Feemarker 将图像写入 html

    有没有办法在 freemarker 中写入图像而不是给出链接 img src
  • 将字符串数组转换为整数数组

    我有一个字符串数组 例如 2 10 11 并想知道将其转换为整数数组的最有效方法是什么 我应该循环遍历所有元素并将其转换为整数还是有一个函数可以执行此操作 Use map https developer mozilla org en US
  • Visual studio mac 编译错误

    我正在开发 Visual Studio for Mac 预览版 我的项目来自 git 存储库 当我尝试编译它时 编译器给出了以下错误 错误 构建目标 IncludeRoslynCompilerFilesToItemGroup 时出错 项目已
  • 如何将 Struct 包装到 NSObject 中

    这应该是微不足道的 我想 但我找不到一种方法如何将 Struct 变量包装成NSObject 有没有办法这样做 如果没有 我将如何将结构添加到NSMutableArray Thanks 嗯 尝试看看NSValue at https deve
  • 溢出:隐藏在移动浏览器上不起作用

    我使用溢出 隐藏来隐藏我的网页中的unglam div 它在所有网络浏览器中运行良好 但在移动浏览器中不起作用 有人可以帮忙吗 body margin auto display block overflow x hidden overflo
  • 如何使用 fmt 在 Go 中打印常量 uint64?

    I tried fmt Printf d math MaxUint64 但我收到以下错误消息 常量 18446744073709551615 溢出 int 我怎样才能解决这个问题 谢谢 math MaxUint64是一个常量 而不是 int
  • Kotlin:游程编码

    该程序可以运行 但是 我仍然遇到逻辑错误 最后一个字母没有运行完毕 例如 当我输入 aaaabbbbccccdddd 时 我得到的输出是 a4b4c4 但没有 d4 fun main val strUser readLine toLower