java - java程序的编程逻辑

标签 java logic

我需要在 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/

相关文章:

java - 如何在 Maven 中使用共享库组织项目

java - 为什么我的 hashmap j 单元测试返回 'expecting null pointer exception' ?

php - 我将如何使用 Switch case 做 OR 语句? (PHP)

c++ - 信号槽弄得一团糟

java - 随机但每个只能出现一次

java - 对 Applet/Webstart 添加较低的限制

java - 递归方法结束时变量保持设置为 1

java - 从多个字符生成排列

string - 通过恰好执行 K 个操作将字符串 S 转换为另一个字符串 T(添加到字符串 S 的末尾/从字符串 S 的末尾删除)

javascript - 如何在嵌套数组javascript中添加数字