描述
我叫王大锤,是一家出版社的编辑。我负责校对投稿来的英文稿件,这份工作非常烦人,因为每天都要去修正无数的拼写错误。但是,优秀的人总能在平凡的工作中发现真理。我发现一个发现拼写错误的捷径:
我特喵是个天才!我在蓝翔学过挖掘机和程序设计,按照这个原理写了一个自动校对器,工作效率从此起飞。用不了多久,我就会出任CEO,当上董事长,迎娶白富美,走上人生巅峰,想想都有点小激动呢!
……
万万没想到,我被开除了,临走时老板对我说: “做人做事要兢兢业业、勤勤恳恳、本本分分,人要是行,干一行行一行。一行行行行行;要是不行,干一行不行一行,一行不行行行不行。” 我现在整个人红红火火恍恍惚惚的……
请听题:请实现大锤的自动校对程序
数据范围: 1≤n≤50 ,每个用例的字符串长度满足 1≤l≤1000
输入描述:
第一行包括一个数字N,表示本次用例包括多少个待校验的字符串。
后面跟随N行,每行为一个待校验的字符串。
输出描述:
N行,每行包括一个被修复后的字符串。
实现
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for(int i = 0;i<n;i++){
System.out.println(Main.verify(sc.next()));
}
}
/**
校验字符串
*/
public static String verify(String str){
if(str.length()<3){ //字符串长度小于三时,直接返回
return str;
}
String result = str.substring(0,2);
if(str.charAt(0)==str.charAt(1)&&str.charAt(1)==str.charAt(2)){ //前三个字符是否相同
result=result;
}else{
result += str.charAt(2);
}
int i=3;
int index=3;
int length = str.length();
while(index<length){
if((str.charAt(i-2)==str.charAt(i-1)&&str.charAt(i-1)==str.charAt(i))||(str.charAt(i-3)==str.charAt(i-2)&&str.charAt(i-1)==str.charAt(i))){
str = str.substring(0,i) + str.substring(i+1);
++index;
}else{
result += str.charAt(i);
++index;
++i;
}
}
return result;
}
}
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://wang11.blog.csdn.net/article/details/125943876
内容来源于网络,如有侵权,请联系作者删除!