• 公司真题-字节跳动


    链接:https://www.nowcoder.com/questionTerminal/42852fd7045c442192fa89404ab42e92
    来源:牛客网

    我叫王大锤,是一家出版社的编辑。我负责校对投稿来的英文稿件,这份工作非常烦人,因为每天都要去修正无数的拼写错误。但是,优秀的人总能在平凡的工作中发现真理。我发现一个发现拼写错误的捷径:

    1. 三个同样的字母连在一起,一定是拼写错误,去掉一个的就好啦:比如 helllo -> hello
    2. 两对一样的字母(AABB型)连在一起,一定是拼写错误,去掉第二对的一个字母就好啦:比如 helloo -> hello
    3. 上面的规则优先“从左到右”匹配,即如果是AABBCC,虽然AABB和BBCC都是错误拼写,应该优先考虑修复AABB,结果为AABCC
     

    我特喵是个天才!我在蓝翔学过挖掘机和程序设计,按照这个原理写了一个自动校对器,工作效率从此起飞。用不了多久,我就会出任CEO,当上董事长,迎娶白富美,走上人生巅峰,想想都有点小激动呢!
    ……
    万万没想到,我被开除了,临走时老板对我说: “做人做事要兢兢业业、勤勤恳恳、本本分分,人要是行,干一行行一行。一行行行行行;要是不行,干一行不行一行,一行不行行行不行。” 我现在整个人红红火火恍恍惚惚的……

    请听题:请实现大锤的自动校对程序
    import java.util.Scanner;
    
    /**
    * @author Empirefree 胡宇乔:
    * @version 创建时间:2020年3月14日 上午8:58:14
    */
    public class Main {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            int n;String str, cnt, ans;
            
            while (scanner.hasNext()) {
                n = scanner.nextInt();
                for(int i = 0; i < n; i++){
                    str = scanner.next();
                    cnt = "";ans = "";
                    
                    cnt += str.charAt(0);
                    for(int j = 1; j < str.length(); j++){
                        //比较cnt长度
                        if(cnt.length() == 1){
                            if (str.charAt(j) == cnt.charAt(0))cnt += str.charAt(j);
                            else{
                                ans += cnt;
                                cnt = "";cnt += str.charAt(j);
                            }
                        }
                        //2字符
                        else if (cnt.length() == 2) {
                            if(str.charAt(j) == cnt.charAt(0)) continue;
                            else {
                                cnt += str.charAt(j);
                            }
                        }
                        //3字符即以上
                        else{
                            if(str.charAt(j) != cnt.charAt(cnt.length() - 1)){
                                ans += cnt;
                                cnt = "";cnt += str.charAt(j);
                            }
                            else continue;
                        }
                    }
                ans += cnt;
                System.out.println(ans);
                }
            }
        }
    }
  • 相关阅读:
    18.12.30 【sssx】Trie图
    18.12.30 【sssx】线段树
    18.12.25 POJ 1039 Pipe
    18.12.25 POJ 3525 Most Distant Point from the Sea(半平面+二分)
    18.12.25 POJ 1228 Grandpa's Estate
    18.12.22 luogu P3047 [USACO12FEB]附近的牛Nearby Cows
    18.12.21 DSA 中缀表达式的值
    18.12.21 luogu P3650 [USACO1.3]滑雪课程设计Ski Course Design
    18.12.21 【USACO】Times17
    18.12.20 DSA Full Tank?(DP+BFS)
  • 原文地址:https://www.cnblogs.com/meditation5201314/p/12491869.html
Copyright © 2020-2023  润新知