百度2014校园招聘笔试试题-研发工程师笔试题
- 格式:doc
- 大小:125.50 KB
- 文档页数:4
阿里巴巴集团2014年秋季校园招聘系统工程师北京笔试卷第一部分单选题(前10题,每题2分;后10题,每题3分;共50分。
选对得满分,选错倒扣一分,不选得0分。
)1.字符串“alibaba”有个不同的排列。
A. 5040B. 840C. 14D.4202.下列一段C++代码的输出是。
class Base{public:int Bar(char x) {return (int)(x);}virtual int Bar(int x) {return(2*x);}};class Derived :public Base{public:int Bar(char x) {return(int)(-x);}int Bar(int x) {return (x/2);}};void main(void){Derived Obj;Base*pObj=&Obj;printf("%d,",pObj->Bar((char)(100)));printf("%d,",pObj->Bar(100));}A. 100,50B. -100,200C. -100,50D. 100,2003.有一个二维数组A[10][5],每个数据元素占1个字节,且A[0][0]的存储地址是1000,则A[i][j]的地址是。
A. 1000+10i+jB. 1000+i+jC. 1000+5i+jD. 1000+10i+5j4.下列不是线性表?A. 队列B. 栈C. 关联数组D. 链表5. 下列有关在一个处理器(processor)上跑两个线程(thread)的说法中,正确的是。
A. 一个线程可以改变另一个线程的程序计数器(program counter)B. 一个线程既不能读也不能写另一个线程的栈(stack)C. 一个线程可以读写另一个线程的寄存器(register)D. 以上都不对6.关于双链表的搜索给定元素操作的说法正确的是。
腾讯校园招聘软件开发类笔试试题考试时长:分钟一不定项选择题(共题,每题分,共分,少选、错选、多选均不得分)已知一棵二叉树,如果先序遍历地节点顺序是:,中序遍历是:,则后序遍历结果为:()个人收集整理勿做商业用途....下列哪两个数据结构,同时具有较高地查找和删除性能?().有序数组.有序链表.树.表下列排序算法中,哪些时间复杂度不会超过?().快速排序.堆排序.归并排序.冒泡排序初始序列为一组数采用堆排序,当建堆(小根堆)完毕时,堆所对应地二叉树中序遍历序列为:()个人收集整理勿做商业用途....当时,下列函数地返回值是:()( ){(<) ;()();}....个人收集整理勿做商业用途市,共有两个区,人口比例为:,据历史统计地犯罪率为,区为,现有一起新案件发生在市,那么案件发生在区地可能性有多大?()个人收集整理勿做商业用途....个人收集整理勿做商业用途系统中,哪些可以用于进程间地通信?()..共享内存.消息队列.信号量静态变量通常存储在进程哪个区?().栈区.堆区.全局区.代码区查询性能().在字段上添加主键.在字段上添加索引.在字段上添加主键.在字段上添加索引地址是一个()类地址.....个人收集整理勿做商业用途下推自动识别机地语言是:().型语言.型语言.型语言.型语言下列程序地输出是:()()(){(“\”*());;}....个人收集整理勿做商业用途浏览器访问某页面,协议返回状态码为时表示:()找不到该页面禁止访问内部服务器访问服务器繁忙如果某系统*成立,则系统采用地是()进制.....个人收集整理勿做商业用途某段文本中各个字母出现地频率分别是{,,,,},使用哈夫曼编码,则哪种是可能地编码:()个人收集整理勿做商业用途() () () () ()() () () () ()() () () () ()() () () () ()和分别对应了中地哪几层?()一个栈地入栈序列是,则栈地不可能地输出序列是?()....个人收集整理勿做商业用途同一进程下地线程可以共享以下?()....个人收集整理勿做商业用途对于派生类地构造函数,在定义对象时构造函数地执行顺序为?():成员对象地构造函数:基类地构造函数:派生类本身地构造函数....个人收集整理勿做商业用途如何减少换页错误?()进程倾向于占用访问局部性()满足进程要求进程倾向于占用使用基于最短剩余时间()地调度机制递归函数最终会结束,那么这个函数一定?()使用了局部变量有一个分支不调用自身使用了全局变量或者使用了一个或多个参数没有循环调用编译过程中,语法分析器地任务是()分析单词是怎样构成地分析单词串是如何构成语言和说明地分析语句和说明是如何构成程序地分析程序地结构同步机制应该遵循哪些基本准则?().空闲让进.忙则等待.有限等待.让权等待进程进入等待状态有哪几种方式?()调度给优先级更高地线程阻塞地线程获得资源或者信号在时间片轮转地情况下,如果时间片到了获得未果设计模式中,属于结构型模式地有哪些?()状态模式装饰模式代理模式观察者模式二、填空题(共题个空,每空分,共分)设有字母序列{},请写出按二路归并方法对该序列进行一趟扫描后地结果为.个人收集整理勿做商业用途关键码序列(),要按照关键码值递增地次序进行排序,若采用初始步长为地地排序法,则一趟扫描地结果是;若采用以第一个元素为分界元素地快速排序法,则扫描一趟地结果是.个人收集整理勿做商业用途二进制地址为,大小为()和()块地伙伴地址分别为:,.个人收集整理勿做商业用途设是给定地一棵二叉树,下面地递归程序()用于求得:二叉树中具有非空地左、右两个儿子地结点个数;只有非空左儿子地个数;只有非空右儿子地结点个数和叶子结点个数.,、都是全局量,且在调用()之前都置为.个人收集整理勿做商业用途{;*,*;};;( *){(>)(>) ;;(>) ;;(>) (>);(>) (>);}* () ();*三、其他方向简答题(共题,每题分),选作题,不计入总分)请设计一个排队系统,能够让每个进入队伍地用户都能看到自己在队列中所处地位置和变化,队伍可能随时有人加入和退出;当有人退出影响到用户地位置排名时需要及时反馈到用户.个人收集整理勿做商业用途,两个整数集合,设计一个算法求他们地交集,尽可能地高效.。
百度xx软件开发工程师笔试题
百度的题总体来说不难,都是一些根底的题。
好似近几年都有这样的趋势,计算机网络,操作系统,数据库,每个根底课出一道题。
接着是三道程序设计题。
最后是系统设计题。
所以好好看计算机根底是关键。
计算机根底简答题
1.简述tcp的三次握手和四次挥手,以及为什么挥手的时候需要四次。
2.列出内存管理淘汰算法,并简述。
3.列出数据库的范式,并简述。
程序设计题
1.寻找单向链表中的某一项,如果这项出现了两次,那么返回第一次。
2.一个正整数集合s,找到其中的最大元素从c,使得c=a+b。
a,b也是正整数集合的元素。
3.用栈模拟队列,实现enqueue(入队),dequeue(出队),isEmpty(是否为空)。
并写出完整的单元用例。
系统设计题
设计一个云端控制系统,一般的应用都有一定的云端控制能力
1.画出系统模块视图
2.单个机器如果有很多的链接,如何管理链接中断,连接查询。
3.提高系统的容错能力。
⼀、选择题:15 分共 10 题1. 在排序⽅法中,关键码⽐较次数与记录地初始排列⽆关的是:A. Shell 排序B. 归并排序C. 直接插⼊排序D. 选择排序选择 A2. 以下多线程对 int 型变量x的操作,哪⼏个需要进⾏同步:A. x=y;B. x++;C. ++x;D. x=1;选择 B, C3. 代码void func(){static int val;…}中,变量 val 的内存地址位于:A. 已初始化数据段B.未初始化数据段C.堆D.栈选择 A4. 同⼀进程下的线程可以共享以下:A. stackB. data sectionC. register setD. thread ID选择 A, B5. TCP 和 IP 分别对应了 OSI 中的哪⼏层?A. Application layerB. Data link layerC. Presentation layerD. Physical layerE. Transport layerF. Session layerG. Network layer选择 EG6. short a[100],sizeof(a) 返回?A. 2B. 4C. 100D. 200E. 400选择 D7. 以下哪种不是基于组件的开发技术_____。
A. XPCOMB. XPC. COMD. CORBA选择 B8. 以下代码打印的结果是(假设运⾏在 i386 系列计算机上):字串2struct st_t{int status;short *pdata;char errstr[32];};st_t st[16];char *p = (char *)( st[2].errstr + 32 );printf( "%d", ( p - (char *)(st) ) );A. 32B. 114C. 120D. 1112选择 C,因为st[2]的起始地址⽐st[0]的起始地址⾼80位,st[2].errstr的起始地址⽐st[2]的起始地址⾼8位再加上32位就等于 120.9. STL 中的哪种结构是连续形式的存储:A. mapB. setC. listD. vector选择 D10. ⼀个栈的⼊栈序列是 A,B,C,D,E,则栈的不可能的输出序列是:A. EDCBAB. DECBAC. DCEABD. ABCDE选择 C⼆、简答题:20 分,共 2 题1. (5 分)重复多次 fclose ⼀个打开过⼀次的 FILE *fp 指针会有什么结果,并请解释。
百度校园招聘软件开发测试JAVA工程师笔试题百度校园招聘软件开发测试JAVA工程师笔试题一、1、Java如何体现面向对象思想?封装、继承、多态?2、Java如何实现多态?[java] view plaincopyprint?01.class A02.{03. void m();04.}05.class B extends A06.{07. void m();08.}09.A a = new B();10.a.m(); //这里调用的是B的m方法3、实现压栈操作?(给了个栈结构,具体的记不住了)二、1、写一函数,实现查找某一字符串中子串的个数,例如String中i的个数为1 [java] view plaincopyprint?01.public int calSubString(String s, String sub) {02. int n = 0;03. char[] c = s.toCharArray();04. for (char e : c) {05. if (String.valueOf(e).equals(sub)) { n++; }06. }07. return n;08.}2、非递归实现二叉树的后序遍历,要求时间复杂度和空间复杂度都是O(n)3、链表,每个节点有两个指针,第一个指针指向后一个节点,第二个指针指向后一个的后一个节点,设计函数实现删除所有值为M的节点三、基于手机平台设计Push系统,包括手机端和Push Server端,,这套Push系统是一个基础服务系统,不包括具体业务逻辑,是一个开放系统,开放给第三方应用开发者使用。
请基于手机系统的'一些特性,来设计这套Push系统。
1) 描述手机端部分设计时,需要考虑的关键性能指标有哪些2) 画出手机端程序结构图3) 画出第三方程序使用这套系统时所涉及到的相关部分系统结构图4) 你觉得基于这套系统能够开发一个什么样的第三方程序,并举一个例子。
百度校招笔试题百度校招笔试题2015届百度校招笔试题百度2015校园招聘笔试题(武汉站–软件研发工程师)(笔试时间120分钟)一、简答题(本题共30分)1. 列出至少6中内部排序算法,并说明复杂度及稳定性。
(10分)2. 多线程同步互斥的方法有哪些?(10分)3. 进程间通信方式有哪些?哪种通信方式速度最快?(10分)二、算法与程序设计题(本体共45分)1. 设计一个算法,快速查找二叉树上任意两个节点的最近共同父节点,请给出算法描述和代码实现(15分)2. 给定一个有序链表,删除所有重复的元素,仅保留至出现一次的元素,请给出算法描述和代码实现(15分)3. 给定一颗二叉树,判断其是否为平衡二叉树(左右子树之差的绝对值不超过1)(15分)三、系统设计题(本体共25分)1. 一个分布式检索服务系统(500台服务器),不同query的检索处理时间相差很大(比如有的query需要十几毫秒,有的需要上百毫秒甚至更多),现在发现线上很多检索由于该服务的处理超时(处理超时是指处理时间超过了上游模块设置的最大的等待处理时间。
这里我们假定为200ms)而查询失败。
为了解决这个问题,需要为这个服务设计一个内存级cache功能,要求如下:(1)、最大限度的降低服务超时率;(2)、如果原数据有变化,尽量展现最新数据;(3)、尽量提高cache的命中率;为了实现上述要求,除了设计cache内部逻辑以外,你可以提出具体调整查询请求在分布式系统中的分派规则。
百度2010年校园招聘软件测试笔试题百度2010年校园招聘软件测试笔试题1、简答题。
请说出树的深度优先、广度优先遍历算法,及非递归实现的特点。
2、找错struct complex_t { int real; int imag; } int create(complex_t*p,unsigned int n) { p=new complex_t[n];if(p==NULL){ return -1; } return 0; } int compute() { //implement complex_t*comps; unsigned int num=0; cin>>num; if(create(comps,num)=0){ cerr>pos; while(pos>comps[pos].real>>comps[pos].imag;sum+=comps[pos].real*comps[pos+1].real+comps[pos].ima g*comps[pos+ 1].imag; pos+=2; } cout现在就有这样的一个大型项目,由N(N>1000)个组件构成,每个组件都是可以编译的,但组件之间存在着编译依赖,如组件N1依赖N2,即编译N1时N2必须已经先编译完成,否则N1不能完成编译,但组件之间没有循环依赖的问题。
2014百度校园招聘上海站笔试题目(2)3、求二叉树的面积(高乘宽),高为二叉树根到叶子节点的最大距离,宽为二叉树最多的节点数。
#include#include//定义二叉树结点typedef struct BiTNode {char data;struct BiTNode *lChild, *rChild; } BiTNode, *BiTree;//定义队列结点typedef struct QNode { BiTree data;struct QNode *next;} QNode, *Queue;//定义队列typedef struct {Queue front;Queue rear;} LinkedQueue;//创建二叉树(先序)void createBiTree(BiTree T) {char c = getchar();if(c == * ) {T = NULL;} else {T = (BiTree)malloc(sizeof(BiTNode)); T- data = c;createBiTree(T- lChild);createBiTree(T- rChild); }}//打印二叉树(中序)void printTree(BiTree T) { if(T) {printTree(T- lChild);printf( %c , T- data);printTree(T- rChild);}}//初始化一个队列void initQueue(LinkedQueue Q) {Q.front = Q.rear = (Queue)malloc(sizeof(QNode)); Q.front- next = NULL;}//进队void enQueue(LinkedQueue Q, BiTree T) { Queue p = (Queue)malloc(sizeof(QNode)); p- data = T;p- next = NULL;Q.rear- next = p;Q.rear = p;}//进队void deQueue(LinkedQueue Q, BiTree T) { if(Q.rear == Q.front) {T = NULL;return ;Queue p = Q.front- next;T = p- data;Q.front- next = p- next;if(p == Q.rear) Q.rear = Q.front; free(p);}int max(int a, int b) {return a b ? a: b;}//求树的深度int treeDepth(BiTree T) {if(T) {return max(treeDepth(T- lChild), treeDepth(T- rChild)) + 1;} else {return 0;}}//二叉树各层结点数的最大值int maxLayer(BiTree T) {if(!T) return 0; LinkedQueue Q;initQueue(Q);int max=0, pre = 1, h = 0, i = 0; BiTree p = T;enQueue(Q, p);while(Q.front != Q.rear) { while(i pre) {deQueue(Q, p);if(p- lChild) {h ++;enQueue(Q, p- lChild); }if(p- rChild) {h ++;enQueue(Q, p- rChild);i ++;}if(h max) { max = h; }pre = h;i = 0;h = 0;}return max;}void main() {BiTree T;printf( 请输入二叉树结点的值:\ncreateBiTree(T);printf( 中序遍历的结果为:\n printTree(T);int a, b;a = treeDepth(T);b = maxLayer(T);printf( \n树的深度为:%d\n , a);printf( 树的各层结点数的最大值:%d\n , b); printf( 树的繁茂度为:%d\n , a * b);。
本人酱油党,不过为了给大家以后笔试有所借鉴,凭借记忆把笔试题大概的记录一下,职位是开发测试
一、简答题:
1、Map Reduce实现了大规模数据集的并行运算,请解释Map和Reduce的作用以及MapReduce的工作原理。
2、C和C++如何动态分配和释放内存?其动态分配和释放内存有何区别?
3、请给出ftp、udp、tcp、ip、icmp、dhcp、dns、arp的关系。
二、算法设计:
1、给出两个整数数组A[N],B[M],求其交集,写出算法并分析复杂度。
2、结合发牌算法,读入输入序列,输出序列中,保证每张牌在每个位置的概率相等。
请写出算法并分析复杂度。
3、给出N个从大到小排列的有序队列,求TOP M个元素。
请给出数据结构,并写出算法和复杂度分析。
百度校园招聘笔试题及答案解析百度校园招聘笔试题及答案一:简答题(30)1:数据库以及线程发生死锁的原理及必要条件,如何避免死锁(操作系统书上有)2:面向对象的三个基本元素,五个基本原则(继承,封装,多态,基本原则没答上)3:windows内存管理的机制以及优缺点(分页,分段,虚拟内存管理....) 二:程序设计题(40)1:公司里面有1001个员工,现在要在公司里面找到最好的羽毛球选手,也就是第一名,每个人都必须参赛,问至少要比赛多少次才能够找到最好的羽毛球员工。
(含伪代码)--------(个人觉得,两两比赛,分成500组剩下一人,类似于归并排序的方式,比出冠军后,让冠军之间再比,主要是要想想多余的那一个选手如何处理,必然要在第一次决出冠军后加入比赛组)2:现在有100个灯泡,每个灯泡都是关着的,第一趟把所有的灯泡灯泡打开,第二趟把偶数位的灯泡制反(也就是开了的关掉,关了的打开),第三趟让第3,6,9....的灯泡制反.......第100趟让第100个灯泡制反,问经过一百趟以后有多少灯泡亮着-----(觉得这个应该是最好做的编程题了,首先定义一个数组vist[100],初始化为0,我们假设已经达到第i个灯泡了,要判断第i个灯泡最后是开着还是灭了的,要要知道它被开关了多少次用temp存放,也就是说是偶数还是奇数,偶数显然最后是关着的,奇数则开着,让i除以比它小的数字,如果余数为0就躺temp++,最后再根据temp的值确定vist[i是0还是1,最后扫描整个vist数组)3:有20个数组,每个数组有500个元素,并且是有序排列好的,现在在这20__500个数中找出排名前500的数(可以用归并排序,最后找到500个元素的值,也可以这样首先找到每个数组的.最大值和最小值,然后存放在一个结构体里面,如果一个数组里面的最小值大于某一个数组的最大值,那么某一个数组就被kill掉,然后提取剩余数组的最大值----当然每个数组的元素放生变化了,因为每次提取走了最大值,然后改变结构体里面的最大值和最小值,重复以上操作,直到找到前五百个数)三:系统设计题(30)现在有一个手机,手机上的键盘上有这样的对应关系,2对应“abc”,3对应“def”.....手机里面有一个userlist用户列表,当我们输入942的时候出来拼音的对应可能是“xia”,“zha”,“xi”,“yi”等,当我们输入9264的时候出来是yang,可能是“样”,“杨”,“往”等,现在我们输入一个字符串数字,比如926等,要在电话簿userlist中查找出对应的用户名和电话号码并返回结果,---------(个人觉得用哈希表来查找,并用链表来处理冲突,如a[2]依次对应abc,可以在匹配字符的时候定义一个char(/__P)[4]的指针,每个指针指向最多四个char类型的字符串,并且用遍历的方式依次匹配)百度校招什么时候开始一般是在2月到4月春招的高发期是在3月到4月,当然也有更早的提前招录,在12月到1月,这个时间段是企业为了争夺优秀生源,提前招聘时间;还有5月份的补录,但这时候只有少数企业开通补录通道。
旗开得胜
读万卷书 行万里路
1
百度2014校园招聘-研发工程师笔试题
一、简答题(30分)
1,当前计算机系统一般会采用层次结构存储数据,请介绍下典型计算机存储系统一般分为哪几
个层次,为什么采用分层存储数据能有效提高程序的执行效率?(10分)
所谓存储系统的层次结构,就是把各种不同存储容量、存取速度和价格的存储器按层次结
构组成多层存储器,并通过管理软件和辅助硬件有机组合成统一的整体,使所存放的程序和数
据按层次分布在各种存储器中。目前,在计算机系统中通常采用三级层次结构来构成存储系统,
主要由高速缓冲存储器Cache、主存储器和辅助存储器组成。
存储系统多级层次结构中,由上向下分三级,其容量逐渐增大,速度逐级降低,成本则逐
次减少。整个结构又可以看成两个层次:它们分别是主存一辅存层次和cache一主存层次。这
个层次系统中的每一种存储器都不再是孤立的存储器,而是一个有机的整体。它们在辅助硬件
和计算机操作系统的管理下,可把主存一辅存层次作为一个存储整体,形成的可寻址存储空间
比主存储器空间大得多。由于辅存容量大,价格低,使得存储系统的整体平均价格降低。由于
Cache的存取速度可以和CPU的工作速度相媲美,故cache一主存层次可以缩小主存和cPu
之间的速度差距,从整体上提高存储器系统的存取速度。尽管Cache成本高,但由于容量较小,
故不会使存储系统的整体价格增加很多。
综上所述,一个较大的存储系统是由各种不同类型的存储设备构成,是一个具有多级层次
结构的存储系统。该系统既有与CPU相近的速度,又有极大的容量,而成本又是较低的。其中
高速缓存解决了存储系统的速度问题,辅助存储器则解决了存储系统的容量问题。采用多级层
次结构的存储器系统可以有效的解决存储器的速度、容量和价格之间的矛盾。2,Unix/Linux
系统中僵尸进程是如何产生的?有什么危害?如何避免?(10分)
一个进程在调用exit命令结束自己的生命的时候,其实它并没有真正的被销毁,而是留
下一个称为僵尸进程(Zombie)的数据结构(系统调用exit,它的作用是使进程退出,但也仅
旗开得胜
读万卷书 行万里路
2
仅限于将一个正常的进程变成一个僵尸进程,并不能将其完全销毁)。
在Linux进程的状态中,僵尸进程是非常特殊的一种,它已经放弃了几乎所有内存空间,
没有任何可执行代码,也不能被调度,仅仅在进程列表中保留一个位置,记载该进程的退出状
态等信息供其他进程收集,除此之外,僵尸进程不再占有任何内存空间。它需要它的父进程来
为它收尸,如果他的父进程没安装SIGCHLD信号处理函数调用wait或waitpid()等待子进程
结束,又没有显式忽略该信号,那么它就一直保持僵尸状态,如果这时父进程结束了,那么init
进程自动会接手这个子进程,为它收尸,它还是能被清除的。但是如果如果父进程是一个循环,
不会结束,那么子进程就会一直保持僵尸状态,这就是为什么系统中有时会有很多的僵尸进程。
避免zombie的方法:
1)在SVR4中,如果调用signal或sigset将SIGCHLD的配置设置为忽略,则不会产生
僵死子进程。另外,使用SVR4版的sigaction,则可设置SA_NOCLDWAIT标志以避免子进程
僵死。
Linux中也可使用这个,在一个程序的开始调用这个函数 signal(SIGCHLD,SIG_IGN);
2)调用fork两次。
3)用waitpid等待子进程返回.
3,简述Unix/Linux系统中使用socket库编写服务器端程序的流程,请分别用对应的socket
通信函数表示(10分)
TCP socket通信
服务器端流程如下:
1.创建serverSocket
2.初始化 serverAddr(服务器地址)
3.将socket和serverAddr 绑定 bind
4.开始监听 listen
旗开得胜
读万卷书 行万里路
3
5.进入while循环,不断的accept接入的客户端socket,进行读写操作write和read
6.关闭serverSocket
客户端流程:
1.创建clientSocket
2.初始化 serverAddr
3.链接到服务器 connect
4.利用write和read 进行读写操作
5.关闭clientSocket
这个列表是一个Berkeley套接字API库提供的函数或者方法的概要:
socket() 创建一个新的确定类型的套接字,类型用一个整型数值标识,并为它分配系统资源。
bind() 一般用于服务器端,将一个套接字与一个套接字地址结构相关联,比如,一个指定的本
地端口和IP地址。
listen() 用于服务器端,使一个绑定的TCP套接字进入监听状态。
connect() 用于客户端,为一个套接字分配一个自由的本地端口号。 如果是TCP套接字的话,
它会试图获得一个新的TCP连接。
accept() 用于服务器端。 它接受一个从远端客户端发出的创建一个新的TCP连接的接入请求,
创建一个新的套接字,与该连接相应的套接字地址相关联。
send()和recv(),或者write()和read(),或者recvfrom()和sendto(), 用于往/从远程套接字发送
和接受数据。
close() 用于系统释放分配给一个套接字的资源。 如果是TCP,连接会被中断。
gethostbyname()和gethostbyaddr() 用于解析主机名和地址。
旗开得胜
读万卷书 行万里路
4
select() 用于修整有如下情况的套接字列表: 准备读,准备写或者是有错误。
poll() 用于检查套接字的状态。 套接字可以被测试,看是否可以写入、读取或是有错误。
getsockopt() 用于查询指定的套接字一个特定的套接字选项的当前值。
setsockopt() 用于为指定的套接字设定一个特定的套接字选项。
二、算法与程序设计题
1,使用C/C++编写函数,实现字符串反转,要求不使用任何系统函数,且时间复杂度最小,
函数原型:char* reverse_str(char* str)。(15分)
获取首尾指针,然后将首尾指针指向的元素交换,将首指针指向下一个,将尾指针指向前一个,
交换指针指向的元素,然后重复执行,直到首尾指针相遇。
2,给定一个如下格式的字符串(1,(2,3),(4,(5,6),7))括号内的元素可以是数字,也可以是另一个
括号,请实现一个算法消除嵌套的括号,比如把上面的表达式变成:(1,2,3,4,5,6,7),如果表达
式有误请报错。(15分)
使用栈和队列实现