zoukankan      html  css  js  c++  java
  • 网易2018提前批前端笔试编程题

    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);
        }
    }
  • 相关阅读:
    操作系统__kali(1)基本操作指令,以及常用工具
    Log4net入门(回滚日志文件篇)
    Log4net入门(日志文件篇)
    Log4net入门(控制台篇)
    openwrt控制GPIO
    openwrt DTS介绍
    openwrt bin文件解析
    STM32(三十)蓝牙通信
    openwrt的led configuration
    uci文件生成脚本函数说明
  • 原文地址:https://www.cnblogs.com/guorange/p/7353085.html
Copyright © 2011-2022 走看看