网易2017提前提笔试编程题

1.彩色砖块

  小易有一些彩色的砖块。每种颜色由一个大写字母表示。各个颜色砖块看起来都完全一样。现在有一个给定的字符串s,s中每个字符代表小易的某个砖块的颜色。小易想把他所有的砖块排成一行。如果最多存在一对不同颜色的相邻砖块,那么这行砖块就很漂亮的。请你帮助小易计算有多少种方式将他所有砖块排成漂亮的一行。(如果两种方式所对应的砖块颜色序列是相同的,那么认为这两种方式是一样的。)
例如: s = "ABAB",那么小易有六种排列的结果:
"AABB","ABAB","ABBA","BAAB","BABA","BBAA"
其中只有"AABB"和"BBAA"满足最多只有一对不同颜色的相邻砖块。

输入描述:输入包括一个字符串s,字符串s的长度length(1 ≤ length ≤ 50),s中的每一个字符都为一个大写字母(A到Z)。

输出描述:输出一个整数,表示小易可以有多少种方式。

//题目出的很误导人,其实意思就是判断给出的字符串中有多少种不同种类的字符,超过两种就是不合适的
while(line = readline()){
    var arr = line.trim().split(‘‘);
    var subArr = [];
    for(var i=0; i<arr.length; i++){
        if(subArr.indexOf(arr[i]) == -1){
            subArr.push(arr[i]);
        }
    }
    if(subArr.length == 2){
        console.log(2);
    }else if(subArr.length == 1){
        console.log(1);
    }else{
        console.log(0);
    }  
}

2.  01串的最长子串求取

  如果一个01串任意两个相邻位置的字符都是不一样的,我们就叫这个01串为交错01串。例如: "1","10101","0101010"都是交错01串。
小易现在有一个01串s,小易想找出一个最长的连续子串,并且这个子串是一个交错01串。小易需要你帮帮忙求出最长的这样的子串的长度是多少。

输入描述:输入包括字符串s,s的长度length(1 ≤ length ≤ 50),字符串中只包含‘0‘和‘1‘

输出描述:输出一个整数,表示最长的满足要求的子串长度。

//直接遍历整个字符串,记录每次的长度,并取最大值
while(line = readline()){
    var str = line.trim();
    var len = str.length;
    if(len<=1){
        console.log(len);
    }else{
        var k=1;
        var max=1;
        for(var i=0; i<str.length-1; i++){
            if(str[i] !== str[i+1]){
                k++;
            }else{
                k=1;
            }
            if(k > max){
                max = k;
            }
        }
        console.log(max);      
    }  
}

3. 独立的小易

  小易为了向他的父母表现他已经长大独立了,他决定搬出去自己居住一段时间。一个人生活增加了许多花费: 小易每天必须吃一个水果并且需要每天支付x元的房屋租金。当前小易手中已经有f个水果和d元钱,小易也能去商店购买一些水果,商店每个水果售卖p元。小易为了表现他独立生活的能力,希望能独立生活的时间越长越好,小易希望你来帮他计算一下他最多能独立生活多少天。

输入描述:输入包括一行,四个整数x, f, d, p(1 ≤ x,f,d,p ≤ 2 * 10^9),以空格分割

输出描述:输出一个整数, 表示小易最多能独立生活多少天。

//注意分两种情况
while(line = readline()){
    var lines = line.trim().split(‘ ‘);
    var arr = lines.map(function(item){
        return parseInt(item);
    });
    var x = arr[0],
        f = arr[1],
        d = arr[2],
        p = arr[3];
    if(Math.floor(d/x)<=f){
        console.log(Math.floor(d/x));
    }else{
        console.log(Math.floor((d-f*x)/(x+p))+f);
    }
}
时间: 2024-10-26 20:26:17

网易2017提前提笔试编程题的相关文章

网易2017春招笔试真题编程题集合题解

01 双核处理 题目 一种双核CPU的两个核能够同时的处理任务,现在有n个已知数据量的任务需要交给CPU处理,假设已知CPU的每个核1秒可以处理1kb,每个核同时只能处理一项任务.n个任务可以按照任意顺序放入CPU进行处理,现在需要设计一个方案让CPU处理完这批任务所需的时间最少,求这个最小的时间. 输入描述 输入包括两行:第一行为整数n(1 ≤ n ≤ 50)第二行为n个整数lengthi,表示每个任务的长度为length[i]kb,每个数均为1024的倍数. 输出描述输出一个整数,表示最少需

美团点评2017秋招笔试编程题

美团点评2017秋招笔试编程题 1, 大富翁游戏,玩家根据骰子的点数决定走的步数,即骰子点数为1时可以走一步,点数为2时可以走两步,点数为n时可以走n步.求玩家走到第n步(n<=骰子最大点数且是方法的唯一入参)时,总共有多少种投骰子的方法. 题解: 写出前面的几个, 1 -> 1;   2 -> 2 ;  3 -> 4;   4 -> 8; 5 -> 16; 6 -> 32; 可以得到是 二的 n-1 次幂. #include <cstdio> int

网易2017春招笔试真题编程题集合(8)——奇怪的表达式求值

常规的表达式求值,我们都会根据计算的优先级来计算.比如*/的优先级就高于+-.但是小易所生活的世界的表达式规则很简单,从左往右依次计算即可,而且小易所在的世界没有除法,意味着表达式中没有/,只有(+, - 和 *).现在给出一个表达式,需要你帮忙计算出小易所在的世界这个表达式的值为多少 输入描述: 输入为一行字符串,即一个表达式.其中运算符只有-,+,*.参与计算的数字只有0~9. 保证表达式都是合法的,排列规则如样例所示. 输出描述: 输出一个数,即表达式的值 输入例子: 3+5*7 输出例子

网易2017春招笔试真题编程题集合(7)——集合

小易最近在数学课上学习到了集合的概念,集合有三个特征:1.确定性 2.互异性 3.无序性.小易的老师给了小易这样一个集合:S = { p/q | w ≤ p ≤ x, y ≤ q ≤ z }需要根据给定的w,x,y,z,求出集合中一共有多少个元素.小易才学习了集合还解决不了这个复杂的问题,需要你来帮助他. 输入描述: 输入包括一行: 一共4个整数分别是w(1 ≤ w ≤ x),x(1 ≤ x ≤ 100),y(1 ≤ y ≤ z),z(1 ≤ z ≤ 100).以空格分隔 输出描述: 输出集合中

网易2017春招笔试真题编程题集合——分饼干

参考:http://blog.csdn.net/wwe4023/article/details/70171648的内容 // import java.util.*; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); String line = in.nextLine(); int n = Integer.parseInt(in.nextLine());

网易2017春招笔试真题编程题集合——调整队形

时间限制:1秒 空间限制:32768K 在幼儿园有n个小朋友排列为一个队伍,从左到右一个挨着一个编号为(0~n-1).其中有一些是男生,有一些是女生,男生用'B'表示,女生用'G'表示.小朋友们都很顽皮,当一个男生挨着的是女生的时候就会发生矛盾.作为幼儿园的老师,你需要让男生挨着女生或者女生挨着男生的情况最少.你只能在原队形上进行调整,每次调整只能让相邻的两个小朋友交换位置,现在需要尽快完成队伍调整,你需要计算出最少需要调整多少次可以让上述情况最少.例如:GGBBG -> GGBGB -> G

网易2017春招笔试真题编程题集合——消除重复元素

时间限制:1秒 空间限制:32768K 小易有一个长度为n序列,小易想移除掉里面的重复元素,但是小易想是对于每种元素保留最后出现的那个.小易遇到了困难,希望你来帮助他. 输入描述: 输入包括两行: 第一行为序列长度n(1 ≤ n ≤ 50) 第二行为n个数sequence[i](1 ≤ sequence[i] ≤ 1000),以空格分隔 输出描述: 输出消除重复元素之后的序列,以空格分隔,行末无空格 输入例子: 9 100 100 100 99 99 99 100 100 100 输出例子: 9

网易2017春招笔试真题编程题集合——赶去公司

时间限制:1秒 空间限制:32768K 终于到周末啦!小易走在市区的街道上准备找朋友聚会,突然服务器发来警报,小易需要立即回公司修复这个紧急bug.假设市区是一个无限大的区域,每条街道假设坐标是(X,Y),小易当前在(0,0)街道,办公室在(gx,gy)街道上.小易周围有多个出租车打车点,小易赶去办公室有两种选择,一种就是走路去公司,另外一种就是走到一个出租车打车点,然后从打车点的位置坐出租车去公司.每次移动到相邻的街道(横向或者纵向)走路将会花费walkTime时间,打车将花费taxiTime

网易2017春招笔试真题编程题集合(10)——小易记单词

小易参与了一个记单词的小游戏.游戏开始系统提供了m个不同的单词,小易记忆一段时间之后需要在纸上写出他记住的单词.小易一共写出了n个他能记住的单词,如果小易写出的单词是在系统提供的,将获得这个单词长度的平方的分数.注意小易写出的单词可能重复,但是对于每个正确的单词只能计分一次. 输入描述: 输入数据包括三行: 第一行为两个整数n(1 ≤ n ≤ 50)和m(1 ≤ m ≤ 50).以空格分隔 第二行为n个字符串,表示小易能记住的单词,以空格分隔,每个单词的长度小于等于50. 第三行为m个字符串,系