特别说明:由于本人编程水平有限,算法特别糟糕,所提供解答为个人随心所写,后两题时间复杂度都为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语言类原题与解答...相关推荐

  1. OPPO 2019校园招聘C/C++开发工程师(手机方向) 笔试编程题-2018.09.10

    思路: 1. 分割字符串,提取数字 2. multimap存储 3. 遍历找到相应结果输出 #include <iostream> #include <map> #includ ...

  2. 2012华为校园招聘机试(武汉)

    选秀节目打分,分为专家评委和大众评委,score[] 数组里面存储每个评委打的分数,judge_type[] 里存储与score[] 数组对应的评委类别, judge_type[i]== 1,表示专家 ...

  3. 华为云GaussDB首席架构师冯柯:摘取皇冠上的明珠,华为云数据库的创新与探索

    摘要:做数据库很难,但好在有一群技术人始终坚守着,见证着国产数据库的崛起. 本文分享自华为云社区<华为云GaussDB首席架构师冯柯:摘取皇冠上的明珠,华为云数据库的创新与探索>,作者:华 ...

  4. 华为校园招聘技术类笔试面试经验(摘)

    华为校园招聘技术类笔试面试经验(摘) 华为效率很高,果然是狼性文化,从一面到最后一面,一天结束,四面:技术面.集体面(群面),压力测试.主管面试. 第一面:技术面 通知我18日10:30去面试,我接近 ...

  5. 华为创造出5g和鸿蒙,拥有5G专利,开发鸿蒙系统:《华为智慧》复盘成长路总结成功之道...

    业务遍布170多个国家,拥有3147项5G专利,开发了自己的鸿蒙系统和方舟编译器,2019年基带芯片收益位列全球第二--你一定猜得到,这就是华为. 华为是如何化茧成蝶,在经历三次企业转型后越来越强大的 ...

  6. android+p+华为手机,给1.9亿用户32款老机型进行安卓P升级 华为值吗?

    大家在购买手机后,都希望在使用的全生命周期获得更好的软件升级服务,来提升用机体验,但是对老机型的系统软件升级需要投入大量的人力物力,一般手机厂商都不太愿意投入.但是我们也看到近两年国内一些厂商在升级安 ...

  7. 美的华为鸿蒙,董明珠万没想到,格力终将被美的超越,华为鸿蒙“功不可没”...

    格力被美的超越 格力和美的都是国内知名的家电巨头,其产品备受消费者青睐,那么二者到底谁更胜一筹呢?如果放在前几年,这个问题的答案无疑是格力,因为在董明珠的亲自代言下,格力空调红遍了大江南北,创造了非常 ...

  8. 华为R5和linux版什么区别,学生一族应该选什么笔记本?华为MateBook D告诉你

    对于学生党来说,不管是学习作业.社团工作还是休闲娱乐,都需要一款优质的笔记本来帮助自己完成,但是在选购时却犯了难.市面上的笔记本型号多如繁星,外观配置却大同小异,看得令人眼花缭乱却又不知如何选购.恰好 ...

  9. 2015华为南研所校园招聘笔试面试经历

    中兴一面刚面完,二面估计要等五天左右才通知,今天闲的无聊总结一下之前华为的笔试面试经历. 本人小硕一枚,成绩略渣,华为投的是软件测试岗. 今天四月份的时候参加了华为实习生招聘,感觉自己特别幸运,机试考 ...

最新文章

  1. Vagrant: hostmanager 主机名管理插件
  2. pyhton3 json.dumps 去除空格
  3. 牛客多校4 - Count New String(序列自动机+广义后缀自动机)
  4. Java EE陷阱#1:忽略@Singleton的默认锁定
  5. 83998 连接服务器出错_来申请一个阿里云服务器玩玩?
  6. 葫芦全身都是宝的飞鸽传书2011
  7. DbHelper重用性方案 优化工具类 jdbc
  8. iOS开发技巧:使用Objective-C创建UUID
  9. 易语言php使用次数,易语言统计重复数教学
  10. pytorch BCEWithLogitsLoss pos_weight参数解疑
  11. python爬app西瓜视频_Python爬虫工程师面试题,采集头条西瓜视频
  12. mysql 灾备方案_mysql数据库灾备方案
  13. 流程图制作之Giffy Diagrams
  14. 在服务器上部署自己的h5页面用于微信内部浏览器打开
  15. 藏书馆APP产品分析报告
  16. OSI(网络)参考模型
  17. 红帽 -EX200-RHCSA 试题讲解-2
  18. 鞋类产品推广引流落地页html源码
  19. 01.Java 编程入门学习笔记20210307
  20. 宗海图cad_使用AutoCAD等软件快速绘制宗海图技术研究

热门文章

  1. 一次生产慢响应问题排查:TRUNCATE TABLE (MySQL Bug 68184)
  2. 淘宝开网店提高店铺转化率的28原则
  3. java毕业设计外卖订餐管理源码+lw文档+mybatis+系统+mysql数据库+调试
  4. 怎么在网上搜索redhat镜像下载不是百度盘就是官网下载?尤其是redhat7.6,除了百度盘怎么也找不到下载链接,官网更别说了
  5. 无心剑中译叶芝《凡事皆可诱惑我》
  6. RecyclerView实现收缩分组悬浮列表
  7. Elasticsearch基础3——密钥库工具、证书生成工具及四种生成模式、https请求步骤流程
  8. 监控远程桌面连接并通过python发送提醒邮件
  9. Windows10系统下怎样使用快捷键打开控制面板
  10. 2023java毕设推荐 中药店商城系统(含源码+论文)