我需要在 java 中创建一个程序,其中当给出的输入是:
hhllyyjhhh
输出应该是
h2l2y2j1h3
相反,我得到了输出
h2l2y2j1
我知道原因,但请告诉我应该如何纠正它或者可能会告诉我一个新的逻辑。
在下面的代码中,T
是字符数组,ans
是一个空字符串。
int counter=0;
for(int i=0;i<T.length;i++)
{
for(int j=i;j<T.length;j++)
{
if(T[i]==T[j])
{
counter++;
}
else
{
ans=ans+T[i]+counter;
i=j-1;
counter=0;
break;
}
最佳答案
问题是如果你的计数一直匹配你不添加最后一个字符,我建议你稍微改变你的方法并尝试在你附加字符和计数之前向前扫描(基本上将你的 else 移到内部循环之外)-
char[] T = "hhllyyjhhh".toCharArray();
String ans = "";
for (int i = 0; i < T.length; i++) {
int count = 1;
while (i + count < T.length && T[i + count] == T[i]) {
count++;
}
ans += T[i] + String.valueOf(count);
i += count - 1;
}
System.out.println(ans);
在此处生成您请求的输出。
关于java - java程序的编程逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24904260/