这是我要开始的代码。
static char[] a1 = {'a', 'b', 'c', 'd', 'e'};
static char[] a2 = {'a', 'c', 'd', 'c'};
for (int i = 1; i <= 5 ; i++) {
if( a1[i] == a2[i] ){
sop(a2[i] + "");
}else{
if( a1[i] > a2[i] ){
sop("");
}else if( a1[i] < a2[i] ){
sop("-");
a2[i] = a2[i-1];
}
}
}
我想知道你如何减少行a2[i] = a2[i-1]
。我做得对吗?
最后,我正在努力调整a1
和a2
。所以我可以得到输出:
ABCDE
A-CD-C
注意:sop = System.out.print
答案 0 :(得分:0)
如果我开始思考,在使用减量时你可能会尝试减少第二个数组的索引使用量?如果是这样,那就不行。除了存在诸如数组寻址之类的问题之外(Java索引位置0的数组元素,而不是位置1。
无论如何,对于您的问题陈述,您可以尝试:
static char[] a1 = {'a', 'b', 'c', 'd', 'e'};
static char[] a2 = {'a', 'c', 'd', 'c'};
for(int k=0;k<a1.length;k++)
System.out.print(a1[k]);
System.out.println();
for (int i = 0, j=0 ; i<a1.length && j<a2.length ; i++, j++)
{
if( a1[i] == a2[j] )
System.out.print(a2[j]);
else if( a1[i] < a2[j] )
{
System.out.print("-");
j--;
}
}