第一次社招笔试题回顾(全基础题)

第一次社招笔试题回顾

在上个月裸辞之后,休息了近一个月,最近开始找工作,发现很多基础自己忘了挺多的。从校招过后,到现在,将近1年多没有怎么做过算法题,Eclipse,Idea这几个都用的比较少。
一家2016年创立的手游公司在智联看到我的简历,然后发邀请,让我过去笔试面试,我在电话沟通中也说明了我自己游戏开发的相关经验,HR说没有问题,主要还是看基础和潜力。不过,最近也是在找工作中,我一口答应了,过去试一试。

第二天,过去这家公司,创业公司,人不是很多,公司地点在某一层楼中的某个区域。公司氛围很安静,大家都在静静的工作中,说话交流也比较小声。和我上家公司比真的好太多。
一来到,HR就选个座位让我坐下,然后把笔试题拿给我,说明了一下规则,就开始了。笔试的题目如下:

1、考学习能力的题

题目大概是以下内容:
我在搜索引擎找到题目出处 在此

当时该题是要填写伪代码:
在下文的RFC文档中的Chunked解码过程里,下划线部分为需要填写的内容。【答案在题目之后,要自己做一下的,页面别滚动太快哦】

为了防止连接失效,我将内容引用到此:

有时候,Web服务器生成HTTP Response是无法在Header就确定消息大小的,这时一般来说服务器将不会提供Content-Length的头信息,而采用Chunked编码动态的提供body内容的长度。
进行Chunked编码传输的HTTP Response会在消息头部设置:

Transfer-Encoding: chunked

表示Content Body将用Chunked编码传输内容。

Chunked编码使用若干个Chunk串连而成,由一个标明长度为0的chunk标示结束。每个Chunk分为头部和正文两部分,头部内容指定下一段正文的字符总数(十六进制的数字)和数量单位(一般不写),正文部分就是指定长度的实际内容,两部分之间用回车换行(CRLF)隔开。在最后一个长度为0的Chunk中的内容是称为footer的内容,是一些附加的Header信息(通常可以直接忽略)。具体的Chunk编码格式如下:

  Chunked-Body = *chunk
         “0” CRLF
         footer
         CRLF
  chunk = chunk-size [ chunk-ext ] CRLF
       chunk-data CRLF

  hex-no-zero =

2、Linux中 * $符号匹配问题填空

这道题是比较普通的一道题,也是5个填空,这个是C语言的,主要考察指针吧,我觉得,暂时没有找到题目,略过吧。

3、编程题

题目:

输入一个句子,每个单词与单词直接都是用空格隔开,再输入一个数字N,现在要将这个句子拆分,这个数字N决定的是拆分后每一行的长度。给了下面两个测试用例
输入:
a key b fox hello
n = 7
输出:
a key b
fox
hello
输入:
a key b fox hello
n = 3
输出:
a
key
b
fox
hel
lo

下面代码是我后来自己写的一个,不一定正确,但是测试用例过了的,还有我自己想的另几种情况也是测过的,所以我觉得没有问题。

import java.util.Scanner;

public class Test3Demo {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println("Please input the parse:");
        Scanner scanner = new Scanner(System.in);
        String string = scanner.nextLine();
        System.out.println("please enter the N:");
        int n = scanner.nextInt();

        //judge to print
        for(int i = 0; i < string.length();) {
            if (i + n >= string.length()) {
                System.out.println(string.substring(i,string.length()).trim());
                break;
            }
            //a line original
            String result = string.substring(i,i+n);
            //the last char is blank
            if (result.charAt(n-1) == ' ') {
                System.out.println(result.trim());
                i = i + n;
                continue;
            }
            else {
                // the next line begin with blank
                if(string.charAt(i+n) == ' ') {
                    System.out.println(result.trim());
                    i = i + n;
                    continue;
                }
                else {
                    // the "result" contain blank.
                    // we suppose that all the words distance is one blank. So the result is not all blank
                    if(result.lastIndexOf(" ") != -1) {
                        int index = result.lastIndexOf(" ");
                        if(!result.substring(0, index).trim().equals("")){
                            System.out.println(result.substring(0, index).trim());
                        }
                        if (index == 0) i = i+1;
                        i = i + index;
                    }
                    else {
                        System.out.println(result.trim());
                        i = i + n;
                    }
                }
            }
        }
    }
}

这道题不难,以前做ACM水题的时候经常做的,最后居然做不出来。当时脑袋有点乱了,哎,能力不足呀。抓紧时间补一补基础才行。

4、逻辑智力题

这是最后一道题,算是很开放的一道题吧。不算难,当时我还设了很多变量,列了一些公式去做。

题目:
体积和浓度相同的两杯水,一杯糖水,一杯盐水
①在糖水中勺一勺水放入盐水中,
②在之后的盐水中勺一勺放入糖水中,
请问是糖水中的盐比例高还是盐水中的糖比例高。

我的计算结果是两者一样多。有兴趣的可以自己算一下。

最后当然是没有过啦,笔试成绩有点惨不忍睹[手动捂脸]。

总结

这四道题,除了第一道,其他真的不难,我在第三道题卡了很长时间,最后一道题计算太久。还是基础不扎实呀,忘记太多了。阅读代码和写代码真的是很不一样的。动手能力很重要的。
第一道,学习能力问题吗?我觉得考的更多的应该是理解能力,我没有接触过的知识,一开始要理解起来还是有点困难的。阅读能力也是一项弱项,都要提高呀。

之后继续加油吧!!!相信自己!!

猜你喜欢

转载自blog.csdn.net/u014306011/article/details/80008890
今日推荐