二、算法与程序设计题(本题共45分)
1. 使用C/C++编写函数,实现字符串反转,要求不使用任何系统函数,且时间复杂度最小,函数原型:char* reverse_str(char* str)。(15分)
算法实现:
/*实现字符串翻转*/
char* reverse_str(char* str)
{
if(NULL == str) //字符串为空直接返回
{
return str;
}
char *begin;
char *end;
begin = end = str;
while(*end != '\0') //end指向字符串的末尾
{
end++;
}
--end;
char temp;
while(begin < end) //交换两个字符
{
temp = *begin;
*begin = *end;
*end = temp;
begin++;
end--;
}
return str; //返回结果
}
void main()
{
char str[] = "123456";
printf(reverse_str(str));
}
2. 给定一个如下格式的字符串,(1,(2,3),(4,(5,6),7))括号内的元素可以是数字,也可以是另一个括号,请实现一个算法消除嵌套的括号,比如把上面的表达式变成:(1,2,3,4,5,6,7),如果表达式有误请报错。(15分)
分析:此题实际上考的是站的应用,即曾经练过的括号匹配问题。
算法实现:
#include <stdio.h>
#include <STACK>
using namespace std;
/*判断表达式是否合法*/
bool IsValid(char *str)
{
if(NULL == str) return false;
stack<char> op;
while(*str)
{
if(*str == '(')
{
op.push(*str++);
}
else if(*str == ')')
{
if(op.empty())
return false;
else
op.pop();
str++;
}
else
{
str++;
}
}
if(op.empty())
return true;
else
return false;
}
/*消除中间的括号*/
char *Elimination_brackets(char *str)
{
if(str == NULL) //字符串为空返回
return str;
char* temp = new char[strlen(str)+1];
char* result = temp;
*temp++ = *str++; //跳过第一个左括号
while(*str!='\0')
{
if(*str == ')' || *str=='(') //有括号,跳过赋值
{
str++;
continue;
}
*temp++ = *str++;
}
*temp++ = ')'; //将有括号加上
*temp = '\0';
return result;
}
void main()
{
char str[] = "(1,(1,0),3)";
int a = 0;
if(IsValid(str))
{
printf(Elimination_brackets(str));
}
}
分享到:
相关推荐
百度校招笔试题.doc
百度校招笔试题.docx百度校招笔试题.docx百度校招笔试题.docx百度校招笔试题.docx百度校招笔试题.docx百度校招笔试题.docx百度校招笔试题.docx百度校招笔试题.docx
2015年,各大公司,如百度 阿里 腾讯 360 网易等的校招笔试题,也有部分往年的笔试题,不过很多只有题目,没有答案,请见谅!
创新工场校招研发笔试题.pdf 小米校招技术类笔试题.pdf 届阿里巴巴校招测试开发工程师在线笔试题.pdf 年欢聚时代校园招聘C++笔试题目.pdf 年欢聚时代(YY)校园招聘Java笔试题目.pdf 网易校招JAVA开发工程师.pdf ...
2015百度校招笔试题汇总,挺全的,希望对笔试准备有所帮助,加油!
2013年10月13日,清华笔试,工作地点:深圳
百度2014年校招南京软件研发岗位笔试题
百度2014校园招聘 开发测试工程师 笔试题
2014.09.28百度南京校招笔试题 2014年阿里巴巴校招笔试题北京站(涉及C++,JAVA,数据结构) 2014年微软校园招聘笔试题 百度2014校园招聘-研发工程师笔试题(济南站) 京东2014年校园招聘笔试题 2012年腾讯实习生笔试...
百度2015校招笔试题,题目很难,大家还要好好复习
涵盖京东、百度、腾讯、网易、华为、美团点评、今日头条、滴滴出行、迅雷、好未来、携程2017秋招笔试真题!文档打开密码:niukewang,输入密码后,弹出对话框点击“只读”就可以开始学习啦!
2013百度笔试原题+手写答案,所有代码都经测试,100%正确!
刷过这么多笔试题,有幸留下图片,大家交流共享,勿喷
百度2014校园招聘笔试试题-数据挖掘笔试题.doc
360校招面试笔试题+阿里校招面试笔试题+百度校招面试笔试题+华为校招面试笔试题+今日头条校招面试笔试题+京东校招面试笔试题+腾讯校招面试笔试题+网易校招面试笔试题
百度校园招聘笔试面试题目,涵盖大多数职位
百度的笔试部分的题目。。。。。。大家想去的话,可以参考一下
此资源为2015年百度各个岗位的笔试题,包括web、机器学习、软件研发等职位
百度、腾讯、阿里、美团等研发、产品、运营、校招笔试题汇总。