2014年6月6日--华为机试

准备了还有一段时间了,结果还是悲剧了,主要准备的是算法,结果华为机试更看重字符串的操作,这一块正好是自己的弱项,哎。不过还有时间,这几个月多刷刷题,多锻炼锻炼,加油吧。

机试一共考了三道题,两道简单点的,一道难题,难题考得是状态机,不知道是什么东西╮(╯▽╰)╭,简单的两题做的也不好,回来在重新做一下。


  1.倒置英文句子中单词的字母顺序。

hello, I am good.  ->  olleh, I ma doog.

这题其实不难,当时脑子有点纠结符号,所以没做出来,还有一点客观原因,平时用的VS2010,到那里用的VC,硬是用的不舒服,算了不找理由了,可以参考博文<实例>C++
将一句话里的单词进行倒置,标点符号不倒换。
就是把第一个翻转省略,第二个翻转修改一下即可。

#include <iostream>
using namespace std;

int main()
{
	int i = 0;
	int begin, end;
	char str[] = "hello, I am good.";
	cout<<"原字符串为:    "<<str<<endl;

	char temp;
	while( str[i] !=NULL )
	{
		if( str[i]!=' '&& str[i] !=',' && str[i]!='.' )
		{
			begin = i;
			while(str[i]!=' '&& str[i] !=',' && str[i]!='.'&&str[i]!=NULL)
			{
				i++;
			}
			end = i-1;
		}

		while(end>begin)
		{
			temp = str[begin];
			str[begin] = str[end];
			str[end] = temp;
			end--;
			begin++;
		}

		i++;
	}
	cout<<"反转后字符串为:";
	cout<<str<<endl;

	return 0;
}<span style="font-family: Arial, Helvetica, sans-serif;">  </span>

 2.实现“十七进制”转“十进制”算法。

这个题好做,不过我觉得自己的方法有点笨,不知道有没有巧妙的方法。

注意:1字符串长度可以用strlen直接求得,2子函数中临时数组需要动态创建,3乘方是double pow(double x,int y),我当时一上去就来个^符号,现在想想真是太无知了。

#include <iostream>
#include <string.h>
#include <math.h>
using namespace std;

int change(char str[])
{

	const int length = strlen(str);
	int *tmp = new int[length];   //动态数组

	for( int i=0; i<length; i++ )
	{
		switch (str[i])
		{
			case '1': tmp[i] = 1; break;
			case '2': tmp[i] = 2; break;
			case '3': tmp[i] = 3; break;
			case '4': tmp[i] = 4; break;
			case '5': tmp[i] = 5; break;
			case '6': tmp[i] = 6; break;
			case '7': tmp[i] = 7; break;
			case '8': tmp[i] = 8; break;
			case '9': tmp[i] = 9; break;
			case 'A': tmp[i] =10; break;
			case 'B': tmp[i] =11; break;
			case 'C': tmp[i] =12; break;
			case 'D': tmp[i] =13; break;
			case 'E': tmp[i] =14; break;
			case 'F': tmp[i] =15; break;
			case 'G': tmp[i] =16; break;
		}
	}

	int num = 0;
	for(int i=0; i<length; i++ )
	{
		num = num +tmp[i]*pow(17.0,length-i-1);
	}
	 return num;
}
int main()
{
	char str[]="ABC";
	cout<<"十七进制数据"<<str<<"的十进制表示为:"<<change(str)<<endl;

	return 0;
}  

    A=10

       AB = 10*17+11 = 181

 
   1BC = 1*17^2+11*17+12 = 488

2014年6月6日--华为机试

时间: 2024-10-18 01:07:20

2014年6月6日--华为机试的相关文章

2014华为机试西安地区A组试题

2014华为机试西安地区A组试题 题目一.分苹果 M个相同苹果放到N个相同篮子里有多少种放法,允许有篮子不放. 1<=M<=10,1<=N<=10 例如5个苹果三个篮子,3,1,1 和 1,1,3是同一种放法 输入 7 3 输出 8 题目分析: 这道题类似于整数划分的题目,这是很早的一道ACM的题目,主要思路就是考递归. ①当苹果数目或者篮子数目为1时候,就只有一种可能 ②当苹果数目小于篮子数目的时候,按照苹果数目来分配 ③当苹果数目大于篮子数目的时候,空一个盘子 + 先每个盘子放

2014年4月23日 10:22:08

step 1 : 做tcp网络编程,要解析一批批的数据,可是数据是通过Socket连接的InputStream一次次读取的,读取到的不是需要转换的对象,而是要直接根据字节流和协议来生成自己的数据对象. 按照之前的编程思维,总是请求然后响应,当然Socket也是请求和响应,不过与单纯的请求响应是不同的. 这里Socket连接往往是要保持住的,也就是长连接,然后设置一个缓冲区,网络流不断的追加到缓冲区.然后后台去解析缓冲区的字节流. http://cuisuqiang.iteye.com/blog/

2014年6月6日22:35:21

sln:使用解决方案文件(后缀为sln的文件)表示一个项目组,他通常包含一个解决方案中所有的项目信息.一个sln文件通常由三部分组成:1. 文件版本.2. 工程信息.3. 全局设置. csproj:它是"C Sharp Project"的缩写...net 开发环境中建立项目时,会产生 .csproj 文件,这是C#的项目文件,其中记录了与项目有关的相关信息,例如包含的文件,程序的版本,所生成的文件的类型和位置的信息等. 1 //换行.看起来是两个,其实\和后面的是一体的 2 char

字符串2014年6月7日15:56:54

商业银行 具有创造活期存款的垄断经营特权,并主要发放工商业贷款的金融中介机构 混业经营 银行业.证券业和保险业的相互渗透与一体化经营 分业经营 银行业.证券业和保险业的业务严格分开,禁止业务交叉,彼此的资金不许相互融通 商业银行的流动性 商业银行满足存款人提取现金.支付到期债务和借款人正常贷款需求的能力 现金头寸 现金资产是指现金与现金等值的可随时变现流动性资产 贷款承诺 为借款人提供一定的贷款额度,在承诺期间借款人有权在任何时间使用这笔贷款 贷款出售 商业银行在贷款形成之后,将贷款债权出售给第

2014年4月28日 乱侃人际关系,反思学习方式

body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI",Tahoma,Helvetica,Sans-Serif,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5;}

微信公众号智能绑定功能实现(2014年10月24日 更新)

微信公众号智能绑定功能实现(2014年10月24日 更新) 继微信企业号公布后,腾讯改动了公众号的接入方式,在之前的基础上加入了2个表单,之前版本号的智能绑定失效了! 在文章 微信公众号之智能绑定实现初始版本号  的基础上改动,新增腾讯这次添加的表单,本次新增的表单有: encoding_aeskey :EncodingAESKey(消息加解密密钥.长度43位!) callback_encrypt_mode: 消息加解密方式(0:明文模式.1:兼容模式.3:安全模式(推荐)) operation

从头到尾彻底理解KMP(2014年8月22日版)

从头到尾彻底理解KMP 作者:July 时间:最初写于2011年12月,2014年7月21日晚10点 全部删除重写成此文,随后的半个多月不断反复改进. 1. 引言 本KMP原文最初写于2年多前的2011年12月,因当时初次接触KMP,思路混乱导致写也写得混乱.所以一直想找机会重新写下KMP,但苦于一直以来对KMP的理解始终不够,故才迟迟没有修改本文. 然近期因在北京开了个算法班,专门讲解数据结构.面试.算法,才再次仔细回顾了这个KMP,在综合了一些网友的理解.以及跟我一起讲算法的两位讲师朋友曹博

【每日圣经日历】2014年9月30日

Mardi le 30 Septembre 2014 礼拜二 2014年9月30日 Ainsi en est-il de la résurrection des morts. Le corps est semé corruptible; il ressuscite incorruptible;il est semé méprisable, il ressuscite glorieux; il est semé infirme, il ressuscite plein de force.    

【每日圣经日历】2014年10月1日

Mercredi le 1 Octobre 2014 礼拜三 2014年10月1日 Car il viendra un temps où les hommes ne supporteront pas la saine doctrine; mais, ayant la démangeaison d'entendre des choses agréables, ils se donneront une foule de docteurs selon leurs propres désires, dé