【发布时间】:2018-03-05 14:17:21
【问题描述】:
假设我有一个输入字符串为“aaabbaccd”。我需要设计一个程序,从我的输出中删除所有相邻的重复项。所以以上面的字符串为例,输出将是: 1. 删除相邻重复项后得到的第一个输出是“aad”(从我的输入中删除了 aabbcc)。 2. 在第二遍中,它会从我的字符串中删除 aa 并使我的输出为“d”。
到目前为止,我可以设计以下代码:
String input="aaabbaccd";
String[] arr=input.split("");
int n=arr.length;
for(int i=0;i<n;i++) {
if(i==arr.length-1) {
if(arr[i-1].equals(arr[i])) {
break;
}
else {
System.out.print(arr[i]+ "");
break;
}
}
if(arr[i].equals(arr[i+1])) {
i=i+1;
continue;
}
if(!arr[i].equals(arr[i+1])) {
System.out.print(arr[i]+ "");
}
}
这段代码的问题在于它给我的输出是 aad。我无法理解如何对我的代码进行第二次传递。也许递归是我需要在这段代码中实现的东西。请帮助我如何在此代码中实现递归。
【问题讨论】:
-
你的代码是?
-
除了缺少代码之外,我认为您甚至没有完整或清晰地描述该算法。至少向我们展示这里应该发生的事情。
-
已添加我的代码。如果需要更多信息,请告诉我。
标签: java algorithm duplicates