每个人所以我正在编写一个代码,应该使用“aabbcc”并输出“abc”,以便使用递归删除重复的字符。希望你能帮助我。
@interface Controller ()
@end
@implementation Controller
- (void)viewDidLoad
{
[super viewDidLoad];
}
@end
当我运行我的代码时,我得到了这个错误:
@synchronized
答案 0 :(得分:0)
也许使用拆分?这更容易使用。
答案 1 :(得分:0)
这是一个有效的解决方案。你很亲密!
如果只有一个字符,你想继续回复这个词(否则你会得到一个超出范围的例外)。
如果彼此相邻的字符相同,则返回一个只保留最右边字符的新单词(跳过副本)。
public static String getReverser(String word) {
System.out.println(word);
if (word.length() == 1) {
return word;
}
if (word.charAt(0) == word.charAt(1)) {
return getReverser(word.substring(1));
} else {
return word.substring(0, 1) + getReverser(word.substring(1));
}
}
输出:
Enter a String:
aabbccccaa
aabbccccaa
abbccccaa
bbccccaa
bccccaa
ccccaa
cccaa
ccaa
caa
aa
a
abca
答案 2 :(得分:0)
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter a String");
StringBuilder builder = new StringBuilder();
char[] charArray = sc.nextLine().toCharArray();
for(char chr : charArray){
if(builder.indexOf(String.valueOf(chr))==-1){
builder.append(chr);
}
}
System.out.println(builder);
}