笔试编程题

1.题目描述

头条的2017校招开始了!为了这次校招,我们组织了一个规模宏大的出题团队,每个出题人都出了一些有趣的题目,而我们现在想把这些题目组合成若干场考试出来,在选题之前,我们对题目进行了盲审,并定出了每道题的难度系统。一场考试包含3道开放性题目,假设他们的难度从小到大分别为a,b,c,我们希望这3道题能满足下列条件:
a<=b<=c
b-a<=10
c-b<=10
所有出题人一共出了n道开放性题目。现在我们想把这n道题分布到若干场考试中(1场或多场,每道题都必须使用且只能用一次),然而由于上述条件的限制,可能有一些考试没法凑够3道题,因此出题人就需要多出一些适当难度的题目来让每场考试都达到要求,然而我们出题已经出得很累了,你能计算出我们最少还需要再出几道题吗?

输入描述:

输入的第一行包含一个整数n,表示目前已经出好的题目数量。



第二行给出每道题目的难度系数d1,d2,...,dn。 



数据范围



对于30%的数据,1 ≤ n,di ≤ 5;



对于100%的数据,1 ≤ n ≤ 10^5,1 ≤ di ≤ 100。



在样例中,一种可行的方案是添加2个难度分别为20和50的题目,这样可以组合成两场考试:(20 20 23)和(35,40,50)。

输出描述:

输出只包括一行,即所求的答案。

示例1

输入

20 35 23 40

输出

2

链接:https://www.nowcoder.com/questionTerminal/57cf0b1050834901933e9b48daafbb9a
来源:牛客网

var  n=readline();
    var m=readline();
    var arr= m.split(' ').sort(sortNumber);
    function sortNumber(a,b){
        return a-b;
    };
var i=0;
var k=0;
var n1,n2,n3;
    while(i<arr.length){
        n1=arr[i];
        n2=arr[i+1];
        if(n2){
            if(n2-n1>20){
                k+=2;
                i++;
            }else if(n2-n1>10&&n2-n1<=20){
                k+=1;
                i+=2;
            }else{
                n3=arr[i+2];
                if(n3){
                    if(n3-n2>10){
                        k+=1;
                        i+=2;
                    }
                    else{
                        i+=3;
                    }
                }
               else{
                    k+=1;
                    i+=2;
                }
            }
        }
        else{
            k+=2;
            i+=2;
        } 吧
    }
    console.log(k);

 

 

2.[编程题]字符串中找出连续最长的数字串

读入一个字符串str,输出字符串str中的连续最长的数字串

输入描述:

个测试输入包含1个测试用例,一个字符串str,长度不超过255。

 

输出描述:

在一行内输出str中里连续最长的数字串。

示例1

输入

abcd12345ed125ss123456789

输出

123456789

 



var readline = require('readline');
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

rl.on('line', function(line) {
   
    var str=line;
    var str2=str.replace(/\D+/g," ");
    var ary=str2.split(" ");
    var longest=0;
    var ary3=[];

    for (var i = 0; i < ary.length; i++) {
        if (ary[i].length > longest) {
            longest = ary[i].length;
            ary3.shift();
            ary3.push(ary[i]);
        
        }
    }
      
     console.log(ary3.join());
  
});

 

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

var readline = require('readline');

const rl = readline.createInterface({

    input: process.stdin,

    output: process.stdout

});

rl.on('line', function(line1){

//以字母切割数组

    var arr=line1.trim().split(/[a-zA-Z]+/);

    var max=0;

    var str;

    for(var i=0;i<arr.length;i++){

//切割的数组中不能包含空格,纯数字

        if(arr[i].length>max&&arr[i].indexOf(" ")===-1){

            max=arr[i].length;

            str=arr[i];

        }

    }

    console.log(str);

});

 

 

 

 

3.[编程题]回文字符串

  • 热度指数:15028 时间限制:1秒 空间限制:65536K

 

给出一个长度不超过1000的字符串,判断它是不是回文(顺读,逆读均相同)的。

 

输入描述:

输入包括一行字符串,其长度不超过1000。

 

输出描述:

可能有多组测试数据,对于每组数据,如果是回文字符串则输出"Yes!”,否则输出"No!"。

示例1

输入

hellolleh
helloworld

输出

Yes!
No!

 

 

链接:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值