华为机试题2014 java_2014届华为校园招聘机试题(java实现)
首先要感谢, 博主Hackbuteer1。提供的关于2014年的华为面试题目。这里运行环境是windows7,eclipse.jdk为1.8.0_45。好了直接上题目、代码,及分析。
一、题目描述(60分):
通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。
比如字符串“abacacde”过滤结果为“abcde”。
要求实现函数:void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr);
【输入】 pInputStr: 输入字符串
lInputLen: 输入字符串长度
【输出】 pOutputStr: 输出字符串,空间已经开辟好,与输入字符串等长;
【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出
示例
输入:“deefd” 输出:“def”
输入:“afafafaf” 输出:“af”
输入:“pppppppp” 输出:“p”
main函数已经隐藏,这里保留给用户的测试入口,在这里测试你的实现函数,可以调用printf打印输出
当前你可以使用其他方法测试,只要保证最终程序能正确执行即可,该函数实现可以任意修改,但是不要改变函数原型。一定要保证编译运行不受影响。
二、题目描述(40分):
通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。
压缩规则:
1、仅压缩连续重复出现的字符。比如字符串”abcbc”由于无连续重复字符,压缩后的字符串还是”abcbc”。
2、压缩字段的格式为”字符重复的次数+字符”。例如:字符串”xxxyyyyyyz”压缩后就成为”3x6yz”。
要求实现函数:
void stringZip(const char *pInputStr, long lInputLen, char *pOutputStr);
【输入】 pInputStr: 输入字符串
lInputLen: 输入字符串长度
【输出】 pOutputStr: 输出字符串,空间已经开辟好,与输入字符串等长;
【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出
示例
输入:“cccddecc” 输出:“3c2de2c”
输入:“adef” 输出:“adef”
输入:“pppppppp” 输出:“8p”
三、题目描述(50分):
通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串。
输入字符串的格式为:“操作数1 运算符 操作数2”,“操作数”与“运算符”之间以一个空格隔开。
补充说明:
1、操作数为正整数,不需要考虑计算结果溢出的情况。
2、若输入算式格式错误,输出结果为“0”。
要求实现函数:
void arithmetic(const char *pInputStr, long lInputLen, char *pOutputStr);
【输入】 pInputStr: 输入字符串
lInputLen: 输入字符串长度
【输出】 pOutputStr: 输出字符串,空间已经开辟好,与输入字符串等长;
【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出
示例
输入:“4 + 7” 输出:“11”
输入:“4 - 7” 输出:“-3”
输入:“9 ++ 7” 输出:“0” 注:格式错误
/** * @author ziling * 2015年8月7日 */
public class StringFilter2014 {
public static void main(String[] args) {
Scanner sca = new Scanner(System.in);
while(true){
// String s = sca.next();
//stringFilter(s)
// System.out.println(hashFilter(s));
// System.out.println(stringZip(s));
String opNum = sca.next();
String operator = sca.next();
String opNum2 = sca.next();
System.out.println(opNum + operator + opNum2);
int judge =inputJudge(opNum, operator, opNum2);
// System.out.println();
if(judge == 1){
if(operator.equals("+")){
System.out.println(temp1 + temp2);
}else System.out.println(temp1 - temp2);
}
}
}
public static int temp1, temp2;
public static int inputJudge(String num1, String operator, String num2){
try{
temp1 = Integer.parseInt(num1);
temp2 = Integer.parseInt(num2);
}catch (Exception e){
return -1;
}
if(!(operator.equals("+") || operator.equals("-"))){
return -1;
}else
return 1;
}
//这里的时间复杂度是n*n,空间复杂度是O(1);当然还可以采用哈希方法,映射到数组中,然后查询看看是否有,时间复杂哦度是n,空间复杂度是常数。
public static String stringFilter(String s){
int length = s.length();
String result="";
char[]c = s.toCharArray();
for(int i = 0; i
char temp = c[i];
for(int j = i+1; j
if(temp == c[j]){
c[j]=c[length-1];
length--;
}
}
}
//数组直接向前复制
for(int i = 0; i
result+=c[i];
}
return result;
}
//题目1的解题部分。
/*(1)这里java的char类型是16bits的,而c++是8位。注意区分。java的基本类型中有char和int两类,其实是int的精度高于char,char本质上也是一种数。 * 只是采用的编码方式不同罢了。 * 这里忍不住要说两句,本题的思想。首先是用hash来映射。直接保存第一次出现的字母。哈希函数为 字符串中的字符-'a'; * 修改于2015-09-09 * */
public static String hashFilter(String s){
StringBuilder sb = new StringBuilder();
int [] a = new int [26];
Arrays.fill(a, 0);
for(char c:s.toCharArray()){
int index = c-'a';
if(0 == hash[index]){
hash[index] = 1;
sb.append(c);
}
}
return sb.toString();
}
public static String stringZip(String s){
StringBuilder sb = new StringBuilder();
int temp=1;
for(int i = 0; i
char c = s.charAt(i);
if(c == s.charAt(i+1)){
temp ++;
if((i+1) ==s.length()-1){
sb.append(temp);
sb.append(c);
}
}else if(c !=s.charAt(i+1)){
if( temp >1){
sb.append(temp);
sb.append(c);
temp =1;
}else if((i+1) != s.length()-1){
sb.append(c);
}else {
sb.append(c);
sb.append(s.charAt(i+1));
}
}
}
return sb.toString();
}
}
华为机试题2014 java_2014届华为校园招聘机试题(java实现)相关推荐
- 2014年多益网络春季校园招聘机试题
总共三道题,共两个小时的时间,题目分别是: 1.输入整型字符串,输出该整数:如:输入"345",输出345: 参考: #include<iostream> #inclu ...
- 2014届华为校园招聘机试题
华为2014校园招聘的机试题目和2013年的完全一样. 一.题目描述(60分): 通过键盘输入一串小写字母(a~z)组成的字符串.请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的 ...
- 2015华为校园招聘机试题一
2015华为校园招聘机试题<一> 今天无意之间看到了2015年华为校园招聘的机试题,于是,做了下,写出来与大家共享.先看第一题: 题目如下: 按要求分解字符串,输入两个数M,N:M代表输入 ...
- 2014 WAP校园招聘笔试题
2014 WAP校园招聘笔试题 Problem's Link: http://www.doc88.com/p-6751117015483.html WAP公司笔试题 We are planning ...
- 2014年360校园招聘笔试题,干货分享
2014年360校园招聘笔试题,希望对将要找工作的同学有帮助,加油,绝对干货分享!!! 具体内容见附件! 转载请注明出处:http://blog.csdn.net/happy_cheng
- 2014迅雷校园招聘笔试题(C++)
2014迅雷校园招聘笔试题(C++) 这是迅雷在深圳那边招聘的笔试题!!也快到我们武汉来面试笔试了吧~~ 时间:2013-9-7 地点:北京大学深圳研究生院 技术类别:C++开发 说明:图片是 ...
- 2014百度校园招聘面试题
2014百度校园招聘面试题,问了很多问题,我记住的也就这么多了. 百度2014校招笔试题 见 http://www.linuxidc.com/Linux/2013-09/90708.htm 一面: 1 ...
- 百度2014研发类校园招聘笔试题解答
http://blog.csdn.net/lanxuezaipiao/article/details/42915285 先总体说下题型,共有3道简答题,3道算法编程题和1道系统设计题,题目有难有易,限 ...
- 阿里巴巴集团2014校园招聘笔试题(9月22北京)
阿里巴巴集团2014校园招聘笔试题 (9月22北京) (答案仅是个人见解,欢迎补充更正,谢谢) 第一部分 单选题(前10题,每题2分:后10题,每题3分.选对得满分,选错倒扣1分,不选得0分) 1.一 ...
最新文章
- 全球顶级专家为你解读:什么是真正的 DevOps?
- Ionic css组成(三)
- linux 进程 ctrl-c,ctrl-z,ctrl-d
- golang 时间原点 时间日期格式化
- 数据结构 -- 单链表
- 程序猿的终点?!!!
- unity中实现简单对象池,附教程原理
- jmeter压测_简单七步,快速入门 JMeter原生压测
- Qt之水平/垂直布局(QBoxLayout、QHBoxLayout、QVBoxLayout)
- 怎么把原来的墙拆掉_家装拆除不是简单的砸砸墙,它也是有技术的
- vc mysql query_我要使用mysql_query()这个函数,在VC中需要做什么工作?
- python---之super()继承,解决钻石继承难题
- ubuntu16.04使用ipv6
- 最大最小次序统计量密度函数的推导
- MySQL实战45讲读后感:一条SQL查询语句是如何执行的?
- 麒麟V10下 安装打包程序
- 增量式PID控制算法及仿真
- windows照片查看器没了_Secondary Display Photo Viewer(图片查看器)下载
- 理解和使用工具(二)-文件系统Heirarchy
- 利用Cesium加载 M3D BIM 模型
热门文章
- 自考计算机系统结构总结知识点,自考计算机系统结构复习资料.doc
- PDF中的超链接在PDF阅读器中失效问题的解决
- sqlserver2014链接mysql_SQL Server2014数据库开启远程连接(转载+自己实操)
- 华为FusionStorage分布式存储介绍及组件关系
- 为了忘却的纪念,也为了纪念已经忘却的那些
- pandas数据分析实战之apply函数应用
- ws550 第三方固件_华为 WS550 无线路由器固件升级
- 船舶运动野本模型求解
- matlab中ode指令,matlab自带的ballode程序
- cpua55和a53哪个好_OPPOA53搭载什么处理器-跑分是多少