• 塞码考试系统里的输入,到底是怎么回事


    前言:最近参加了几场实习生笔试,编程题全军覆没,但是本地明明就是对的啊!!今天花了一早上,终于知道问题出在哪了,和我有同样情况的童鞋可以参考,也许可以解决你的困惑!

    重点:我一直理解错的地方就是,我以为是给我一组(一组表示一次用例的所有数据)数据,我输出一组结果就可以。然而并不是这样!很多题目是一次性给你多组数据,也就是说要求是:一次性给你所有的测试数据,你依次把你的结果全部输出来。举个例子:

    下面是塞码网上京东2016的一道真题(题目可以不用认真看,看输入的地方,输入有若干组)

    image

    假设我定义第一行输入为n,第二行为arr,我以前都是这样写的(错误的写法):

    image

    于是结果就是不对,反正怎么调都不对!我们必须这样写(正确的写法):

    image

    也就是必须用循环来读取输入,且主要代码必须在循环里,否则系统无论给多少组数据,按错误的写法永远只会有一个输出。这个输出对于第一组数据来说是对的,但系统想要的应该是多组输出,所以就会被判为错误。

    上面京东的题目,大家可以去试一试,http://exercise.acmcoder.com/quesexcuse?paperId=176中的第26题。

    错误的代码:

    var n=parseInt(read_line());
    var arr =str.split(" ");
    fun(n,arr);
    //以下代码不变
    function fun(n,arr){
     var dong = arr[0];
    var count=0;
    arr.sort(function(a,b){return a-b;});
    var index = arr.indexOf(dong);
    while(index<n-1){
            arr[n-1]--;
            dong++;
            arr[index]=dong;
            count++;
            arr.sort(function(a,b){return a-b});    
           index =arr.indexOf(dong);
    }
      print(count);
      
    }

    结果如下:

    image

    可以看出,系统给了我很多组数据,我的输出只有一个(其实这个输出结果和刚刚题目上第一个例子的结果是一样的,说明我思路没错),所以判定错误。

    正确的代码:

    var n;
    while(n=parseInt(read_line())){
    var arr = read_line().split(' ');
      fun(n,arr);
    }
    //以下代码不变
    function fun(n,arr){
      var dong = arr[0];
    var count=0;
    arr.sort(function(a,b){return a-b;});
    var index = arr.indexOf(dong);
    while(index<n-1){
            arr[n-1]--;
            dong++;
            arr[index]=dong;
            count++;
            arr.sort(function(a,b){return a-b});    
           index =arr.indexOf(dong);
    }
      print(count);
      
    }

    结果如下:

    image

    只改变了输入的方式,结果就对了!

    苍天啊,我终于弄明白了,简直想哭Smile,那么多笔试全部掉坑里了。如果你和我遇到一样的情况,希望对你有所帮助!

     

  • 相关阅读:
    Cocos坐标之convertToNodeSpace、convertToWorldSpace、convertToNodeSpaceAR、convertToWorldSpaceAR区别和用法
    CocosCraetor中图像资源Texture和SpriteFrame的区别
    git的基本使用方式
    C++中的内存对齐
    介绍 Android 的 Camera 框架
    Android多媒体框架图
    Android程序架构基本内容概述
    Android 框架简介--Java环境(转)
    android架构图示
    最全的Android源码目录结构详解(转)
  • 原文地址:https://www.cnblogs.com/youhong/p/6661664.html
Copyright © 2020-2023  润新知