zoukankan      html  css  js  c++  java
  • 搜狗笔试经历

    这次笔试总觉得还可以,至少没有感觉卡壳的地方,虽然应该还是出现很多错误的,总觉得笔试答的还是可以的。以下依靠回忆记录一下笔试的题目。

    1.文字表述一下char* (*empty[10])(const int** num)的含义。

    这是一个函数指针数组。参数类型我其实不是很确定,(但是确定当时写错了...当时写的是指向整型指针的常量指针),这里有可能是指向整型常量指针的指针。返回类型十分确定,字符指针。

    2.题目大概是一个程序结束输出判断的题目。

    这个题目我其实也考虑错了,break只能跳出一层switch,上一层switch的case语句能够继续执行一个。这里大概应该是a = 1;b = 1;

    #include <iostream>
    int main()
    {
        int x = 0,y = 1,a = 0;b = 0;
        switch(x)
        {
            case 0:
            {
                switch(y)
                {
                    case 0:
                    a++;
                    break;
                    case 1:
                    b++;
                    break;
                }
            }
            case 1:
                a++;
                break;
        }
        printf("%d,%d",a,b);
    }
    

    3.考察了int (*array)[10]的意义

    这时候array是一个指向长度为10数组的指针。其实与int a[5][10]定义中的a的意义是一样的。

    4.考察了二叉树的遍历方法,给出先序遍历的字符串和中序遍历的字符串,得出后序遍历的字符串。

    5.将0x8912地址的值赋值为0x1923,这个我就不太明白了,不过我这样写也不太确定是不是正确。  

    int* p;
    p = 0x8912;
    *p = 0x1923;
    

    6.9个相同的钢球,其中一个与其他的质量不同,最少需要比较多少次能够找到该钢球。

    我思考的是分为4,4,1,这样比较6次。但是分成2,2,2,2的话,仅仅需要比较5次。但是分成3,3,3的话,仅仅需要比较4次,所以这个题目我思考错了。

    接下来是两个编程的题目。

    1.对一个stack进行排序,要求不能够利用其它的数据结构。

    不能够利用其它数据结构并不代表不能够利用stack了,所以这里利用两个stack可以完成排序。

    我这里说一下思路:思路是新建一个stack辅助排序,这个stack来存放原先stack中pop()出的数据,这里假设新的栈是A,原先的栈是B。A中的数据我们保证是有序的,栈底元素最大。

    可以这样保证,如果A中为空,B中的数据压入A中,如果不为空,比较A栈顶数据与B的数据,不断的将A栈顶数据弹出至B中,遇到比刚才B栈顶数据大的数据将其压入A中,然后B空了之后A中就是有序的数据。

    这个代码我也完成了。

    2. (九宫问题)在一个3×3的九宫中有1-8这8个数及一个空格随机的摆放在其中的格子里。现在要求实现这个问题:将该九宫格调整为如图1-1右图所示的形式。调整的规则是:每次只能将与空格(上、下、或左、右)相邻的一个数字平移到空格中。试编程实现这一问题的求解。

    当时一看这个问题之后就懵了,完全没有思路...

    之后理了一下思路,然后想到了之前的解空间搜索,直接穷举可以尝试。每一个解像4个方向走了之后有4个解,这样就是一个树形结构。

    这样可以采取广度优先搜索的方法搜索解空间。然后判断是否出现回路,利用hashtable判断是否重复...

    这个题目仅仅是提供了一下思路,和实现的距离还是相差很远的。

    运气还是不错的,竟然把所有算法的思路都理清了...

             

       

  • 相关阅读:
    「初级篇」跟我一起学docker(二)--核心概念和安装
    程序员有哪些借口可以让自己写出低质量的代码?
    「初级篇」跟我一起学docker(一)--认识
    后端程序猿怎么提高技术?提高编码质量?
    河南这么大的省,也所谓的准一线,为什么IT行业就是发展不起来呢?
    JAVA使用Gson解析json数据,实例
    JAVA equals 和 “==”的异同
    JAVA WEB 对返回数据进行按中文名称首字母A~Z升序排序
    JAVA验证数字的正则表达式,来一发
    【转】Java.util.ArrayList.set()方法实例
  • 原文地址:https://www.cnblogs.com/weixliu/p/3326518.html
Copyright © 2011-2022 走看看