MyException - 我的异常网
当前位置:我的异常网» C++ » 2014华为校园招聘第三轮上机标题(南京-C/C++)

2014华为校园招聘第三轮上机标题(南京-C/C++)

www.MyException.Cn  网友分享于:2013-09-10  浏览:150次
2014华为校园招聘第三轮上机题目(南京-C/C++)

2014华为校园招聘第三轮上机题目(南京-C/C++)


形式:

         使用OJ的形式,但是没有时间与内存限制。

工具:C/C++是VS2005,Java是Eclipse。

 

原创文章,转载请注明出处:http://blog.csdn.net/fastsort/article/details/11386827


1、回文数(60分)

给定一个数,判断在7步之内能不能变成回文数,如果能,则输出这个回文数,如果不能,则输出0.例如68,

68+86=154

154+451=605

605+506=1111,

1111是回文数,输出1111.

 

2、最接近的身高(100分)

输入5个人的身高,输出这些身高差最小的2个身高。如果有差相等的,则输出最大的两个。要求以升序输出。

例如输入175 177 178 180 181

则输出180 181

 

3、求二叉树某节点的深度(160分)

原来的第三题是一个关于围棋的,但是没有图,临时换成一个“二叉树”的。

输入一串字符表示二叉树,每个字符表示节点,其后紧跟这这个节点所在层次。根节点所在层次为1,例如a1b2c2d3e3f3表示如下一个二叉树:

              a

b           c

d            e            f

接着输入一串表示查询的节点,例如查询ab节点。要求输出该节点的深度,如果该点不在二叉树中,则输出0。

样例输入:a1b2c2d3e3f3

                     ab

输出:3 2



============================================================================================================

第一题:

#include	<iostream>
#include	<sstream>//stringstream
using	namespace	std;

/**
 **返回n的回文数
 */
int	Huiwen(string n)
{
	for(size_t i=0,j=n.length()-1;i<j;i++,j--)
	{
		swap(n[i],n[j]);
	}
	stringstream	ifs(n);
	int s=0;
	ifs>>s;
	return s;
}

int	fun(string n)
{
	int num;
	stringstream ssm(n);
	ssm>>num;
	int cnt=0;
	while(cnt<7)
	{
		if(num==Huiwen(n))
			break;
		else
		{
			num += Huiwen(n);
			stringstream ss;
			ss<<num;
			ss>>n;
		}
		cnt++;
	}
	if(cnt>=7)	return 0;
	return num;
}


int main()
{
	string n;
	cin>>n;
	cout<<fun(n)<<endl;
	return 0;
}

第二题:

#include	<iostream>
#include	<algorithm>

using	namespace	std;


struct	D
{
	int data;
	int index;
};

bool	operator<(const D& da, const D& db)
{
	return da.data<db.data;
}

int main()
{
	const	int M=5;
	D	a[M];
	for(int i=0;i<M;i++)
	{
		cin>>a[i].data;
		a[i].index = i;
	}
	sort(a,a+M);

	////
	D	df[M-1];
	for(int i=0; i<M-1; i++)
	{
		df[i].data  = a[i+1].data - a[i].data;
		df[i].index = i;
	}
	sort(df,df+M-1);

	int i=0;
	while(df[i].data==df[i+1].data)	i++;
	cout<<a[df[i].index].data<<" "<<a[df[i].index+1].data<<endl;
	return 0;
}

第三题:

#include	<iostream>
#include	<sstream>

using	namespace	std;


int main()
{
	string tree;
	cin>>tree;
	int h=0;//tree height
	for(int i=1; i<tree.length(); i+=2)
	{
		h = max(h, tree[i]-'0');
	}
	
	string nodes;
	cin>>nodes;

	for(int i=0; i<nodes.length(); i++)
	{
		char	n=nodes[i];
		bool	exist=false;
		for(int j=0; j<tree.length() && !exist; j+=2)
		{
			if(n==tree[j])
			{
				cout<<h-(tree[j+1]-'0')+1<<" ";
				exist = true;
			}
		}
		if(exist==false)
			cout<<"0 ";
	}
	return 0;
}

<<多谢wang603603提醒:最后一题解法不对,如果不是完全二叉树这种解法就错了。所以提交好几次都是80分……正确的做法还是要构建二叉树。

题目中说字符串是按照先根遍历给出的,但是答题的过程中又有人过来通知说不一定是先序遍历……fuck!>>


总结:总的来说,题目都很基础,但是我却没有答好,最后一题只得了80分。主要原因在于对vs2005相当不熟悉。没怎么用过,报错稀奇古怪的。用string都没法cin!!!这个过程折腾了好久。。

string str;
cin>>str;///提示没有>>运算

泥煤的,codeblocks从来都没问题的。

当时比较紧张,也没想到去包含什么头文件,只好全部用字符数组来弄了。

键盘旧的要命,上面字母都看不清了,各种不爽。。。

现在开始使用VS2005吧,冷门的工具毕竟不是主流,虽说codeblocks真的不错。。。


※使用sstream对字符串的各种转换,要包含sstream头文件,免得还要自己去转数组。

void    t()
{
    int i = 10102;
    float   f = 1.234;
    string  s="0.345";
    stringstream ss;

    ss<<i;
    string it;
    ss>>it;
    cout<<it<<endl;//10102
    ss.clear();

    ss<<f;
    string ft;
    ss>>ft;///"1.234"
    cout<<ft<<endl;//1.234
    ss.clear();

    ss<<s;
    float   sf;
    ss>>sf;
    cout<<sf<<endl;//0.345
    ss.clear();

}



1楼wang603603昨天 21:26
第三题不对, 题意你理解的有误吧! 没那么简单。n 不能直接减去, 因为不是 满二叉树。。!
Re: hello_world_2012昨天 21:32
回复wang603603n好像是哦。。。。
Re: wang603603昨天 22:00
回复hello_world_2012n这个符合题意,nhttp://blog.csdn.net/wang603603/article/details/11394915
Re: hello_world_2012昨天 22:53
回复wang603603n3Q

文章评论

程序员都该阅读的书
程序员都该阅读的书
那些争议最大的编程观点
那些争议最大的编程观点
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
总结2014中国互联网十大段子
总结2014中国互联网十大段子
旅行,写作,编程
旅行,写作,编程
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
每天工作4小时的程序员
每天工作4小时的程序员
一个程序员的时间管理
一个程序员的时间管理
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
漫画:程序员的工作
漫画:程序员的工作
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
代码女神横空出世
代码女神横空出世
鲜为人知的编程真相
鲜为人知的编程真相
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
编程语言是女人
编程语言是女人
程序员应该关注的一些事儿
程序员应该关注的一些事儿
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
老程序员的下场
老程序员的下场
 程序员的样子
程序员的样子
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
中美印日四国程序员比较
中美印日四国程序员比较
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
我是如何打败拖延症的
我是如何打败拖延症的
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
为什么程序员都是夜猫子
为什么程序员都是夜猫子
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
程序员的鄙视链
程序员的鄙视链
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
我的丈夫是个程序员
我的丈夫是个程序员
Java程序员必看电影
Java程序员必看电影
程序员和编码员之间的区别
程序员和编码员之间的区别
10个调试和排错的小建议
10个调试和排错的小建议
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
如何成为一名黑客
如何成为一名黑客
程序员必看的十大电影
程序员必看的十大电影
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有