【发布时间】:2016-03-10 21:12:09
【问题描述】:
所以我对 Java 有点陌生,目前正在 uni 上 CS 入门课程。我有个小问题困扰了我好久。我有一个使用“运行长度编码(RLE)”算法“解压缩”输入文本的递归方法。简单地说,如果输入是“qwwwwwwweeeeerrtyyyyyqqqqwEErTTT”,则输出必须是“q9w5e2rt5y4qw2Er3T”。目前,我的方法将输入分解为一个没有数字的字母(qwertyqwErT)。
我的问题是我如何才能真正递归地计算字母数?我不允许在方法之外声明任何变量,这是我的主要问题,因为我在 Stackoverflow 上搜索的所有问题大多使用“全局变量”。但是,我可以声明任意数量的局部变量。
教授还给了我们一个“提示”:
提示 #1:记住字符是由数字代码表示的。您可以按如下方式递减字符变量:
字符 c = '7'; C - ; // c 现在将保存字符 '6'
我尝试通过在我正在使用的输入的末尾添加一个编号字符并在每次出现重复字符时将其递增,然后在有新字符时将其替换到前面来解决此问题,但是也没有工作。
感谢您的帮助!
编辑:
我可能应该包括这样一个事实,即我不允许使用任何类型的循环,并且我可以假设一个角色不会重复超过 (9) 次
【问题讨论】:
标签: java string recursion char