8.12网易前端笔试感想(编程部分)

今天下午参加了网易前端笔试,选择题考了算法,数据结构还有JS有关知识,题目难度相对基础,算是很幸运的,编程题三道,题目好理解,也好写,就是想全部通过测试用例有点麻烦,编译器不给没有通过的测试用例,搞得自己也只是干瞪眼的看代码。但最关键是好好审题,因为就在刚才,我把下午的题进行修改,全部通过测试用例(想哭!!!!)就考试而言,过了一个,剩下一个90%,一个70%,心有不甘,但相比之前参加过的编程情况已经好很多了,下面就把这份试题的编程部分说一下:

(题目有点长,我全部截下来,目的是认真审题,所以希望读者静下心慢慢读)

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

例如: s = "ABAB",那么小易有六种排列的结果:
"AABB","ABAB","ABBA","BAAB","BABA","BBAA"
其中只有"AABB"和"BBAA"满足最多只有一对不同颜色的相邻砖块。

输入描述:
输入包括一个字符串s,字符串s的长度length(1 ≤ length ≤ 50),s中的每一个字符都为一个大写字母(A到Z)。
输出描述:
输出一个整数,表示小易可以有多少种方式。
示例1
输入:ABAB
输出:2

这道题第一遍当时很开心,把输入的字符串排个序,看它有多少种字符,然后一阶乘,一波流,So easy(莫名自信),然后就这么做了,做了之后通过率70%,以为是最后阶乘值太大就用了BigInteger,结果还是70%,一看时间不够了就next了。
晚上好好读了一遍题,发现了问题 “最多存在一对不同颜色的相邻砖块,那么这行砖块就很漂亮的” 就是说如果字符不同数>2 计数直接为0而且直接输出,所以代码改了一下就通过了,代码如下:

package 网易20178月笔试;

import java.math.*;
import java.util.*;
/**
 * Created by JackHui on 2017/8/12.
 */
public class no1 {
    public static void main(String[] args)
    {
        Scanner s=new Scanner(System.in);
        while(s.hasNext()) {
            int count = 1;
            int num = 1;
            String x = s.nextLine();
            char[] n = x.toCharArray();
            Arrays.sort( n );
            char temp = n[0];
            for (int i = 1; i < n.length; i++) {
                if (n[i] != temp) {
                    temp = n[i];
                    count++;
                }
                if (count > 2) {
                    count = 0;
                    break;
                }
                continue;
            }
            if (count == 0) {
                System.out.println( count );
            } else {
                BigInteger result = new BigInteger( "1" );
                for (int i = 1; i <= count; i++) {
                    BigInteger num1 = new BigInteger( String.valueOf( i ) );
                    result = result.multiply( num1 );
                }
                System.out.println( result );
            }
        }
    }
}

2.如果一个01串任意两个相邻位置的字符都是不一样的,我们就叫这个01串为交错01串。例如: "1","10101","0101010"都是交错01串。

小易现在有一个01串s,小易想找出一个最长的连续子串,并且这个子串是一个交错01串。小易需要你帮帮忙求出最长的这样的子串的长度是多少。

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

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

输入
111101111
输出
3

这个题也是很自信,数据放入字符串数组,一个一个比,设置两个变量,一个临时变量存即时最大值,一个存最后最大值,如果临时值大于最大值,就同步过去,如果01串断了,临时值清0,按这个思路做了,又是90%。这次我查了20分种,半天找不到就next了,到了晚上,发现又是审题没看,题目说“1”也是01串,而后通过多次提交看了测试用例发现,系统设定由多个1组成的01串也是01串(也就是说开头为1也视为01串格式)。(-_- ! 我还能说什么),上代码吧:

package 网易20178月笔试;

import java.util.Scanner;

/**
 * Created by JackHui on 2017/8/12.
 */
public class no2 {
    public static void main(String[] args)
    {
        int temp=0;
        int count=0;
        Scanner s=new Scanner( System.in );
        String x=s.nextLine();
        if(x.length()>50||x.length()<1)
        {
            return;
        }
        char[] num = x.toCharArray();
        for(int i=1;i<num.length;i++)
        {
            if (num[i] != num[i - 1]) {
                temp += 1;
                if (temp >= count)
                {
                    count = temp;
                }
                } else {
                    temp = 0;
                }
            }
            //修改部分
            //判断n个1组成的串不是01串
            boolean flat=true;
        for(int k=0;k<num.length;k++)
        {
            if(num[k]==0)
            {
                flat=false;
            }
            else continue;
        }
        if(count>=1)
        {
            System.out.println(count+1);
        }
        else if(flat)
        {
            System.out.println(count+1);
        }
        else {
            System.out.println(count);
        }
    }
}

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

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

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

示例
输入:
3 5 100 10
输出
11

做对的一道题,很简单,我用的分类讨论然后判断,先判断钱够不够交租金,然后判断有没有苹果,就这样一步步判断完。其实可以将苹果化为金钱,然后相当于每天固定交苹果钱和租金钱,就结束了!(经过与"@Minot_迷诺"读者的讨论,发现如果有苹果没钱就是不成立的,所以还是要先判断钱先花完还是苹果先吃完)最后是我的代码:

package 网易20178月笔试;

import java.util.Scanner;

/**
 * Created by JackHui on 2017/8/12.
 */
public class no3 {
    public static void main(String[] args) {
        Scanner s = new Scanner( System.in );
        int a = s.nextInt();  //租金
        int b = s.nextInt();  //水果数
        int c = s.nextInt();  //钱数
        int d = s.nextInt();  //水果单价
        int date = 0;
        int temp1 = c / a;
        if (c < a) {
            System.out.println( date );
        } else {
            if (b > 0) {
                if (b >= temp1) {
                    System.out.println( temp1 );
                }
                if (b < temp1) {
                    int temp2 = ((c - (b * a)) / (a + d));
                    System.out.println( b + temp2 );
                }
            } else
            {
                int temp3=(c/(a+d));
                System.out.println( temp3 );
            }

        }
    }
}

写到这里,只能说编程部分完了,到现在选择题目没公布我也没法说,我个人最大的感触是:“编程不怕不会,就怕会了还出现一群小错误,那跟不会其实没什么区别”,希望要校招或参加其他内推的人能以此为戒,做好每道题,赢得笔试的成功!祝福大家!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,558评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,002评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,024评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,144评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,255评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,295评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,068评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,478评论 1 305
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,789评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,965评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,649评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,267评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,982评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,800评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,847评论 2 351

推荐阅读更多精彩内容

  • 总结一下网易2018内推的测试题,我看python的比较少,所以献上自己的low代码,都AC过的,大毛病应该没有,...
    mrlevo520阅读 4,932评论 2 4
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,644评论 18 139
  • 标签(空格分隔): 算法 C++ 笔试 第三题:描述小王最近在开发一种新的游戏引擎,但是最近遇到了性能瓶颈。于是他...
    认真学计算机阅读 1,910评论 0 8
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,605评论 18 399
  • 今天早上
    文皓文文妈妈阅读 130评论 0 0