public class SmartEditor {
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
ArrayList<String> strs = new ArrayList<>();
int n = scan.nextInt();
for(int i = 0;i < n;i++){
strs.add(scan.next());
}
for(String str : strs){
System.out.println(SmartEditor(str));
}
}
public static String SmartEditor(String str){
int a = 0;
int b = 1;
int c = 2;
int d = 3;
if(str.length() == 3){
if(str.charAt(a) == str.charAt(b) && str.charAt(a) == str.charAt(c)){
return str.substring(0,c);
}
return str;
}else if(str.length() < 3){
return str;
}
while(true){
if(str.charAt(a) == str.charAt(b) && str.charAt(a) == str.charAt(c)){
str = str.substring(0,c) + str.substring(c+1);
}else if(d < str.length() && str.charAt(a) == str.charAt(b) && str.charAt(c) == str.charAt(d)){
str = str.substring(0,c) + str.substring(d);
}else{
a = b;
b = c;
c = d;
d = d+1;
}
if(d > str.length()){
break;
}
}
return str;
}
}
字节聪明的编辑(Java)
我叫王大锤,是一家出版社的编辑。我负责校对投稿来的英文稿件,这份工作非常烦人,因为每天都要去修正无数的拼写错误。但是,优秀的人总能在平凡的工作中发现真理。我发现一个发现拼写错误的捷径:
1. 三个同样的字母连在一起,一定是拼写错误,去掉一个的就好啦:比如 helllo -> hello
2. 两对一样的字母(AABB型)连在一起,一定是拼写错误,去掉第二对的一个字母就好啦:比如 helloo -> hello
3. 上面的规则优先“从左到右”匹配,即如果是AABBCC,虽然AABB和BBCC都是错误拼写,应该优先考虑修复AABB,结果为AABCC