华为创新杯编程大赛 java_2012年华为软件校园招聘编程测验(又名:2012华为创新杯编程大赛)软件Java语言类原题与解答...
特别说明:由于本人编程水平有限,算法特别糟糕,所提供解答为个人随心所写,后两题时间复杂度都为O(n*n),这显然不是阅卷人员希望看到的,希望路过的各位大牛能多多指教,不吝赐与小可更佳的设计。
1. 电文加密(30分)
问题描述:
有一行电文译文下面规律译成密码:
A->Z a->z
B->Y b->y
C->X c->x
...
即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母。非字母字符不变,请编写函数将输入字符串加密
要求实现方法:
public String encrypt(String input)
【输入】String input,源字符串
【返回】字符串类型,加密后的字符串
示例:
1) 输入:input = "abcd34!z"
返回:"zyxw34!a"
2) 输入:input = "Xyz45@#1b"
返回:"Cba45@#1y"
2. 找重复字符(30分)
问题描述:
有一字符串,里面可能包含英文字母(大写、小写)、数字、特殊字符,请编写函数找出里面的重复字符,并将这些重复字符组成新的字符串输出。
要求实现方法:
public String RepeatingChar(String input)
【输入】String input,输入字符串
【返回】字符串类型, 重复字符组成的新字符串
注:如果没有重复字符串,返回空字符串;如果有多个重复字符,只返回一个字符。
示例:
1) 输入:input = "ftgfklzevcg"
返回:"fg
2) 输入:input = "qwertyuiopqawsedrfr"
返回:"qwer"
3. 通配符匹配(40分)
问题描述:
判断包含通配符的匹配字符串是否完全匹配输入的字符串。匹配子串中包含的通配符仅有“*”和“?”,且它们都仅表示一个不为空的字符。
要求实现方法:
public int StrFMTCmp(String strCmp, String strMatch)
【输入】String strCmp,输入的字符串
String strMatch,匹配子串
【返回】整形,0:不匹配;1:匹配
示例:
输入:strCmp = "wertyb",strMatch = "w*r"
输出:1
输入:strCmp = "dfgibeg",strMatch = "*?c"
输出:0
输入:strCmp = "hjkjgb",strMatch = "*?k"
输出:1
由于是初级试题,都比较简单,不做过多叙述,直接附上个人编写源代码:
package huawei.exam;
/**
*
* Title: SWTest
*
*
*
* Description:
*
*
*
* Copyright: Copyright (c) 2012
*
*
*
* Company: huawei
*
*
* @author kaiping he
* @version 1.0
*/
public class SWTest {
public static void main(String[] args) {
// TODO:可以在此处添加测试代码
SWTest test = new SWTest();
// 电文加密测试
System.out.println("---------------电文加密测试---------------");
String input1 = "abcd34!z";
String input2 = "Xyz45@#1b";
System.out.println("input1:" + input1 + "\noutput1:"
+ test.encrypt(input1) + "\ninput2:" + input2 + "\noutput2:"
+ test.encrypt(input2));
System.out.println("---------------找重复字符测试---------------");
String input3 = "ftgfklzevcg";
String input4 = "qwertyuiopqawsedrfr";
System.out.println("input1:" + input3 + "\noutput1:"
+ test.RepeatingChar(input3) + "\ninput2:" + input4
+ "\noutput2:" + test.RepeatingChar(input4));
System.out.println("---------------通配符匹配测试---------------");
String strCmp1 = "wertyb";
String strMatch1 = "w*r";
String strCmp2 = "dfgibeg";
String strMatch2 = "*?c";
String strCmp3 = "hjkjgb";
String strMatch3 = "*?k";
System.out.println("strCmp1:" + strCmp1 + "\nstrMatch1:" + strMatch1
+ "\nresult1:" + test.StrFMTCmp(strCmp1, strMatch1)
+ "\nstrCmp2:" + strCmp2 + "\nstrMatch2:" + strMatch2
+ "\nresult2:" + test.StrFMTCmp(strCmp2, strMatch2)
+ "\nstrCmp3:" + strCmp3 + "\nstrMatch3:" + strMatch3
+ "\nresult3:" + test.StrFMTCmp(strCmp3, strMatch3));
}
/**
* 电文加密
*
* @param
* @return
*/
public String encrypt(String input) {
if (input == null) {
return "";
}
char temp[] = input.toCharArray();
for (int i = 0; i < temp.length; i++) {
if (temp[i] >= 'a' && temp[i] <= 'z') {
temp[i] = (char) ('z' - (temp[i] - 'a'));
} else if (temp[i] >= 'A' && temp[i] <= 'Z') {
temp[i] = (char) ('Z' - (temp[i] - 'A'));
}
}
return new String(temp, 0, temp.length);
}
/**
* 找重复字符
*
* @param
* @return
*/
public String RepeatingChar(String input) {
StringBuffer result = new StringBuffer("");
if (input == null || "".equals(input)) {
return result.toString();
}
StringBuffer tmp = new StringBuffer(input);
char c;
boolean isRepeat;
for (int i = 0; i < tmp.length(); i++) {
c = tmp.charAt(i);
isRepeat = false;
for (int j = i + 1; j < tmp.length(); j++) {
if (c == tmp.charAt(j)) {
isRepeat = true;
tmp.deleteCharAt(j);
}
}
if(isRepeat){
result.append(c);
}
}
return result.toString();
}
/**
* 通配符匹配
*
* @param
* @return
*/
public int StrFMTCmp(String strCmp, String strMatch) {
int result = -1;
if (strCmp != null && strMatch != null) {
result = 0;
char c;
for (int i = 0; i < strCmp.length(); i++) {
if (strCmp.length() - i < strMatch.length()) {// 如果剩下的字符个数已经小于匹配串的长度
break;
}
int j = 0;
for (; j < strMatch.length(); j++) {
c = strMatch.charAt(j);
if (c == '*' || c == '?') {
if (strCmp.charAt(i + j) == '\0') {
break;
}
continue;
}
if (c != strCmp.charAt(i + j)) {
break;
}
}// end for
if (j == strMatch.length()) {
result++;
}
}// end for
}// end if
return result;
}
}
华为创新杯编程大赛 java_2012年华为软件校园招聘编程测验(又名:2012华为创新杯编程大赛)软件Java语言类原题与解答...相关推荐
- OPPO 2019校园招聘C/C++开发工程师(手机方向) 笔试编程题-2018.09.10
思路: 1. 分割字符串,提取数字 2. multimap存储 3. 遍历找到相应结果输出 #include <iostream> #include <map> #includ ...
- 2012华为校园招聘机试(武汉)
选秀节目打分,分为专家评委和大众评委,score[] 数组里面存储每个评委打的分数,judge_type[] 里存储与score[] 数组对应的评委类别, judge_type[i]== 1,表示专家 ...
- 华为云GaussDB首席架构师冯柯:摘取皇冠上的明珠,华为云数据库的创新与探索
摘要:做数据库很难,但好在有一群技术人始终坚守着,见证着国产数据库的崛起. 本文分享自华为云社区<华为云GaussDB首席架构师冯柯:摘取皇冠上的明珠,华为云数据库的创新与探索>,作者:华 ...
- 华为校园招聘技术类笔试面试经验(摘)
华为校园招聘技术类笔试面试经验(摘) 华为效率很高,果然是狼性文化,从一面到最后一面,一天结束,四面:技术面.集体面(群面),压力测试.主管面试. 第一面:技术面 通知我18日10:30去面试,我接近 ...
- 华为创造出5g和鸿蒙,拥有5G专利,开发鸿蒙系统:《华为智慧》复盘成长路总结成功之道...
业务遍布170多个国家,拥有3147项5G专利,开发了自己的鸿蒙系统和方舟编译器,2019年基带芯片收益位列全球第二--你一定猜得到,这就是华为. 华为是如何化茧成蝶,在经历三次企业转型后越来越强大的 ...
- android+p+华为手机,给1.9亿用户32款老机型进行安卓P升级 华为值吗?
大家在购买手机后,都希望在使用的全生命周期获得更好的软件升级服务,来提升用机体验,但是对老机型的系统软件升级需要投入大量的人力物力,一般手机厂商都不太愿意投入.但是我们也看到近两年国内一些厂商在升级安 ...
- 美的华为鸿蒙,董明珠万没想到,格力终将被美的超越,华为鸿蒙“功不可没”...
格力被美的超越 格力和美的都是国内知名的家电巨头,其产品备受消费者青睐,那么二者到底谁更胜一筹呢?如果放在前几年,这个问题的答案无疑是格力,因为在董明珠的亲自代言下,格力空调红遍了大江南北,创造了非常 ...
- 华为R5和linux版什么区别,学生一族应该选什么笔记本?华为MateBook D告诉你
对于学生党来说,不管是学习作业.社团工作还是休闲娱乐,都需要一款优质的笔记本来帮助自己完成,但是在选购时却犯了难.市面上的笔记本型号多如繁星,外观配置却大同小异,看得令人眼花缭乱却又不知如何选购.恰好 ...
- 2015华为南研所校园招聘笔试面试经历
中兴一面刚面完,二面估计要等五天左右才通知,今天闲的无聊总结一下之前华为的笔试面试经历. 本人小硕一枚,成绩略渣,华为投的是软件测试岗. 今天四月份的时候参加了华为实习生招聘,感觉自己特别幸运,机试考 ...
最新文章
- Vagrant: hostmanager 主机名管理插件
- pyhton3 json.dumps 去除空格
- 牛客多校4 - Count New String(序列自动机+广义后缀自动机)
- Java EE陷阱#1:忽略@Singleton的默认锁定
- 83998 连接服务器出错_来申请一个阿里云服务器玩玩?
- 葫芦全身都是宝的飞鸽传书2011
- DbHelper重用性方案 优化工具类 jdbc
- iOS开发技巧:使用Objective-C创建UUID
- 易语言php使用次数,易语言统计重复数教学
- pytorch BCEWithLogitsLoss pos_weight参数解疑
- python爬app西瓜视频_Python爬虫工程师面试题,采集头条西瓜视频
- mysql 灾备方案_mysql数据库灾备方案
- 流程图制作之Giffy Diagrams
- 在服务器上部署自己的h5页面用于微信内部浏览器打开
- 藏书馆APP产品分析报告
- OSI(网络)参考模型
- 红帽 -EX200-RHCSA 试题讲解-2
- 鞋类产品推广引流落地页html源码
- 01.Java 编程入门学习笔记20210307
- 宗海图cad_使用AutoCAD等软件快速绘制宗海图技术研究
热门文章
- 一次生产慢响应问题排查:TRUNCATE TABLE (MySQL Bug 68184)
- 淘宝开网店提高店铺转化率的28原则
- java毕业设计外卖订餐管理源码+lw文档+mybatis+系统+mysql数据库+调试
- 怎么在网上搜索redhat镜像下载不是百度盘就是官网下载?尤其是redhat7.6,除了百度盘怎么也找不到下载链接,官网更别说了
- 无心剑中译叶芝《凡事皆可诱惑我》
- RecyclerView实现收缩分组悬浮列表
- Elasticsearch基础3——密钥库工具、证书生成工具及四种生成模式、https请求步骤流程
- 监控远程桌面连接并通过python发送提醒邮件
- Windows10系统下怎样使用快捷键打开控制面板
- 2023java毕设推荐 中药店商城系统(含源码+论文)