华为机试题
hutongling
知行合一!
展开
-
字符串转换
题目:输入一个字符串,将其各个字符对应的ASCII值加5之后输出结果。程序要求:该字符串只包含小写字母,若其加上5之后的字符值大于’z’,将其转换成a字符开始的字符串。package 华为机试题;/** * @author Hutongling * * @time:2017年4月8日 上午10:01:43 */public class 字符串转换 { static StringBuf原创 2017-04-08 10:17:55 · 307 阅读 · 0 评论 -
分离字符串中的字母和数字并使得字母在前数组在后
功能描述:输入字符串,将该字符串中数字放到非数字的后面,并保持原有顺序不变。 例如:h3a2p0p1y———-happy3201代码:package 华为机试题;import problem1.beiboTest;/** * @author Hutongling * * @time:2017年4月9日 上午10:26:42 */public class 分离字符串中的字母和数字 {原创 2017-04-09 10:32:54 · 3778 阅读 · 0 评论 -
字符转换
输入一个字符串,如果是小写则转换成相应的大写字母的后五位,如果是VWXYZ则转换成abcde,其他的都不变,例如:“aDsR154+-/.”则应该输出为“FDXR154+-/.”package 华为机试题;/** * @author Hutongling * * @time:2017年4月9日 上午10:50:50 */public class 将字符串中的小写字母全都替换成大写字母的后五原创 2017-04-09 11:04:19 · 279 阅读 · 0 评论 -
输入身份证号和年份计算年龄
输入一个身份证号码(15位和18位)和一个年份,计算现在的年龄(忽略非法参数)eg:610618199001020065 2011输出:21代码:package 华为机试题;/** * @author Hutongling * * @time:2017年4月9日 上午10:36:18 */public class 输入身份证号和年份计算年龄 { static void calcu原创 2017-04-09 10:47:32 · 2124 阅读 · 0 评论 -
删除一个字符串里出现次数最多的子字符串
题目: 删除一个字符串里出现次数最多的子字符串如果有多个出现次数相同的并且出现次数最多则将多个全部删除比如abbccd得到结果 ad分析: 第一步,首先将该字符串的所有子字符串都列出来,并且统计出每个子字符串出现的次数(这需要使用HashMap来解决);第二步,找出子字符串中出现次数最多的子字符串,并将其保存下来(需要使用List集合来解决问题);第三步,将原始字符串中的子字符串全部使用“”替换掉原创 2017-04-09 13:25:19 · 1214 阅读 · 0 评论 -
计算1/n!的数列之和
编写程序,输入一个正整数n,求下列算式的值。要求定义和调用函数fact(k)计算k的阶乘,函数返回值的类型是double。1+1/2!+ …. +1/n!输出保留5位小数。下面是一些合理的表达式的例子:Input 5 Output 1.71667 代码:package 华为机试题;/** * @author Hutongling *原创 2017-04-09 13:58:57 · 5580 阅读 · 0 评论 -
计算整数的各位之和
计算整数各个数位之和 描述: 要求使用递归实现,计算整数各个数位之和。 举例: 123 –> 1+2+3 = 6运行时间限制: 无限制 内存限制: 无限制 输入: 0xff ff ff ff以内的整数输出: NA样例输入: 123 样例输出: 6 package 华为机试题;/** * @author Hutongling * * @time:2017年4月9日 下午2:08:11 */原创 2017-04-09 14:25:45 · 1259 阅读 · 0 评论 -
提取不重复的整数
提取不重复的整数 描述: 输入一个int型32位整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。运行时间限制: 10 Sec 内存限制: 无限制 输入: 整数,如9876673注意:1、整数最后的0,请忽略,例如:输入1750,输出:5712、负数,保留’-‘在前面,例如:输入-175,输出:-571输出: 整数,如37689样例输入: 9876673 样例输出: 37689 代码:原创 2017-04-09 14:45:32 · 454 阅读 · 0 评论 -
Java JVM 2:垃圾收集算法 - 标记整理算法(伪代码实现与深入分析)
算法原理标记整理法首先需要标记出存活的对象,然后所谓的整理就是把这些存活的对象往一端推。然后就清除边界以外的区域即可。老年代的垃圾回收器(例如 Serial Old,Parallel Old,到那时不包括CMS,CMS使用的是标记清除法)都是采用这个算法,主要由于老年代的对象都比较持久,不是短暂的。这样一看,每次整理,将不会产生内存碎片问题,因为也没有分配对象需要查空闲链表了。伪代码实现只要涉及到对转载 2017-04-09 19:52:55 · 786 阅读 · 0 评论 -
使用优先级队列求一个大数组中的前k个最大的数(或前k个最小的数)
/** * 对于一个数据量很大的数组,找出数组中前k个最大的数和前k个最小的数 */package 华为机试题;import java.io.BufferedReader;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter原创 2017-04-11 19:30:14 · 1124 阅读 · 0 评论 -
Java中的陷阱题
1、找奇数:public static boolean isOdd(int i){ return i % 2 == 1; }上面的方法真的能找到所有的奇数么?A:没有考虑到负数问题,如果i为负则不正确。应该return i%2 == 02、浮点数相减System.out.println(2.0-1.9);A:Java中的简单浮点数类型float和double不能够进行运转载 2017-04-28 16:14:19 · 997 阅读 · 0 评论 -
尾递归
1. 什么是尾递归尾递归是指所有递归形式的调用,一定是发生在函数的末尾。形式上只要最后一个return语句是单纯函数就可以。如:return tailrec(x+1);而return tailrec(x+1) + x;或者return x*tailrec(x+1);都不可以。因为无法更新tailrec()函数内的实际变量,只是新建一个栈。2. 尾递归的好处尾递归和一般的递归不同在对内存的占用,普通递转载 2017-04-28 16:16:10 · 331 阅读 · 0 评论 -
KMP算法
Java实现KMP算法 思想:每当一趟匹配过程中出现字符比较不等,不需要回溯i指针, 而是利用已经得到的“部分匹配”的结果将模式向右“滑动”尽可能远 的一段距离后,继续进行比较。 时间复杂度O(n+m)代码实现:public class KMP { public static void main(String[] args) { String s = "abbabbbbca原创 2017-04-19 11:28:21 · 332 阅读 · 0 评论 -
递归读取文件夹下的文件
如题:使用递归读取文件夹下面的所有文件/** * */package problem1;import java.io.File;/** * @author Hutongling * * @time:2017年4月30日 下午9:16:53 */public class 递归读取文件夹下面的所有文件 { /** * 递归读取文件夹下的 所有文件 *原创 2017-04-30 21:28:56 · 2038 阅读 · 0 评论 -
求最大面积
题目:对非负序列a1,a2,……,an,在数轴上做垂线连接点(i,0)和(i,ai)。选择这样的两条线和x轴可以形成一个容器,我们以面积代表所装的水,求以这种方式构成的容器能装的最大面积。比如选择a2=3,a5=6,则所装的面积为9.思路分析: 从两端逼近,求最大面积。代码:package 华为机试题;import java.util.LinkedList;/** * @author Huton原创 2017-04-24 14:49:31 · 618 阅读 · 0 评论 -
密码验证合格程序
密码要求:1.长度超过8位2.包括大小写字母.数字.其它符号,以上四种至少三种3.不能有相同长度超2的子串重复说明:长度超过2的子串输入描述: 一组或多组长度超过2的子符串。每组占一行 输出描述: 如果符合要求输出:OK,否则输出NG 示例1 输入021Abc9000 021Abc9Abc1 021ABC9000 021$bc9000 输出OK NG NG OKimport原创 2017-08-19 16:14:05 · 466 阅读 · 0 评论 -
简单密码
密码是我们生活中非常重要的东东,我们的那么一点不能说的秘密就全靠它了。哇哈哈. 接下来渊子要在密码之上再加一套密码,虽然简单但也安全。假设渊子原来一个BBS上的密码为zvbo9441987,为了方便记忆,他通过一种算法把这个密码变换成YUANzhi1987,这个密码是他的名字和出生年份,怎么忘都忘不了,而且可以明目张胆地放在显眼的地方而不被别人知道真正的密码。他是这么变换的,大家都知道手机上的字母:原创 2017-08-19 16:33:52 · 641 阅读 · 0 评论 -
分解质因数
分解质因数eg:输入 28输出 28=2*2*7代码:package 华为机试题;/** * @author Hutongling * * @time:2017年4月9日 上午10:02:43 */public class 分解质因数 { static void decomposeNum(int num) { System.out.print(num + "=");原创 2017-04-09 10:19:52 · 519 阅读 · 0 评论 -
将二维数组逆序并对每一行随机排列
要求:将一个二维数组进行逆序,逆序后所有的元素行列不定,进行随机排列 ①先把数组每一行逆序(意思是第一行换到最后一行,以此类推) ②再把逆序后每一行进行随机排列 如:{{4,3,32,5},{1,2,3,4},{9,6,5,4}}; ⇒4 6 5 9 3 4 2 1 5 4 32 3 代码:package 华为机试题;impo原创 2017-04-09 10:01:15 · 1730 阅读 · 0 评论 -
求数组均值并统计
程序实现目标:求一个整型数组中元素的平均值,并统计其中大于和小于此平均值的元素的个数。程序要求:输入:整型数组中的元素个数及各个元素。 输出:整型数组中元素的平均值,大于和小于此平均值的元素的个数。代码如下:package 华为机试题;import java.util.Scanner;/** * @author Hutongling * * @time:2017年4月8日 上午10:19原创 2017-04-08 10:34:53 · 1830 阅读 · 0 评论 -
随机打印字符串数组并排序输出
要求:随机打印50个随机(4-10长度)的字符串,要求字符串包含的范围是所有的英文字母包含大小写和数字,按照编码顺序排序,每行打印4个,要求首字符对齐代码:package 华为机试题;import java.util.Arrays;import java.util.Random;/** * @author Hutongling * * @time:2017年4月8日 上午11:01:47原创 2017-04-08 13:40:58 · 1124 阅读 · 0 评论 -
回文数
题目描述: 有这样一类数字,他们顺着看和倒着看是相同的数,例如:121,656,2332等,这样的数字就称为:回文数字。编写一个函数,判断某数字是否是回文数字。 要求实现方法: public boolean isPalindrome(String strIn); 【输入】strIn: 整数,以字符串表示; 【返回】true: 是回文数字;false: 不是回文数字;原创 2017-04-08 10:57:12 · 409 阅读 · 0 评论 -
统计字符串中的每个字符出现次数
手动输入一个字符串,仅限小写字母,统计并输出每个字符在字符串中出现的次数,并输出。提示(可以用Map)package 华为机试题;import java.util.HashMap;import java.util.Map;/** * @author Hutongling * * @time:2017年4月8日 下午1:43:49 */public class 统计字符串中的每个字符出现次原创 2017-04-08 13:58:48 · 4522 阅读 · 0 评论 -
二维数组列最小值
比较二维数组列最小值,组成一个新数组返回。(实现核心算法,不需要使用IO) 输入:intArr = {{5,6,1,16},{7,3,9}} 输出:intArrs ={1,3}代码:package 华为机试题;import java.util.Arrays;/** * @author Hutongling * * @time:2017年4月8日 下午3:20:52 */public原创 2017-04-08 15:24:10 · 1648 阅读 · 0 评论 -
输出最长单词
输入:a aa,cat tiger.123dd 输出: tiger 功能描述:键盘输入一句话,输出一句话中最常的单词,如果最长的出现多次,返回第一个。这句话只包含数字字母和标点。代码如下:/** * */package 华为机试题;import java.util.HashMap;import java.util.Map;import java.util.Set;/** * @a原创 2017-04-08 15:48:11 · 1062 阅读 · 0 评论 -
替换字符串中的字母为下一个字母
功能描述:将字符串中的字母全部替换成字母的下一个字母, 要是最后一位是z或Z则替换为a或A。 输入:aBxyZ 输出:bCyzA这里不仅需要考虑字符串中的字母,还需要考虑字符串中的其他字符,故代码如下:package 华为机试题;/** * @author Hutongling * * @time:2017年4月8日 下午3:49:03 */public class 将字符串中原创 2017-04-08 16:00:23 · 4208 阅读 · 0 评论 -
删除字符串中字符个数最少的字符
功能描述:删除字符串中字符个数最少的字符,最少字符串有多个,最少的要全部删除,然后返回该子字符串。 输入:asdasdas 输出:asasaspackage 华为机试题;import java.util.HashMap;import java.util.Map;import java.util.Set;/** * @author Hutongling * * @time:2017年4月原创 2017-04-08 17:41:11 · 1531 阅读 · 0 评论 -
反转二进制数
功能描述:对一个二进制数的每位进行0和1反转,求翻转后的二进制所对应的十进制输入:1010输出:5代码如下:package 华为机试题;/** * @author Hutongling * * @time:2017年4月8日 下午7:28:56 */public class 反转二进制数 { static int inverseBinary(String string) {原创 2017-04-08 19:43:31 · 418 阅读 · 0 评论 -
约瑟夫环问题
功能描述:共data1个人,围成一圈,然后标号,从1-data1。然后从data2号开始从1报数,报3的出列,求出列序列。 返回一个数组, 如:输入:3,2; 输出:1,2,3代码如下:package 华为机试题;import java.util.LinkedList;/** * @author Hutongling * * @time:2017年4月8日 下午6:06:18 */p原创 2017-04-08 19:13:39 · 416 阅读 · 0 评论 -
数组的循环移位
功能描述:数组的循环移位, 输入:{a,b,c},2 输出:{b,c,a} package 华为机试题;/** * @author Hutongling * * @time:2017年4月8日 下午9:11:32 */public class 数组的循环移位 { static char[] arrayMove(char[] data,int length){原创 2017-04-08 21:36:00 · 515 阅读 · 0 评论 -
数字拼音转数字
功能描述:已知:yi er san si wu liu qi ba jiu 分别对应123456789, 对一段只含有这几种字符串的字符串进行转换,如:输入:yiersansan 输出:1233package 华为机试题;/** * @author Hutongling * * @time:2017年4月8日 下午4:51:48 */public class 字符串转换成数字 {原创 2017-04-08 17:27:09 · 1229 阅读 · 0 评论 -
字符串的子字符串集
功能描述:查找一个字符串的子字符串集输入:abab输出:a b ab ba aba bab 代码:package 华为机试题;import java.util.Iterator;import java.util.LinkedHashSet;import java.util.Set;/** * @author Hutongling * * @time:2017年4月8日 下午8:16:38原创 2017-04-08 21:09:28 · 619 阅读 · 0 评论 -
找出一个int[]数组中满足 2^n的数字,然后组成的新的数组
功能描述:找出一个int[]数组中满足 2^n的数字,然后组成的新的数组输入:{4,3,8}输出:{4,8}代码如下:package 华为机试题;import java.awt.List;import java.util.LinkedList;/** * @author Hutongling * * @time:2017年4月8日 下午5:43:28 */public class 找出数原创 2017-04-08 18:00:40 · 323 阅读 · 0 评论 -
括号匹配问题
功能描述:判断一个字符串中的”( )”是否配对、 输入:if(a.equals(a)) 输出:true 输入:())() 输出:falsepackage 华为机试题;import java.util.LinkedList;/** * @author Hutongling * * @time:2017年4月8日 下午7:48:17 */public class 括号配对 {原创 2017-04-08 20:15:43 · 272 阅读 · 0 评论 -
将字符转换为小写并加5后输出结果
程序实现目标: 输入一个字符,将字符转换为小写,将其对应的ASCII值加5后,输出结果。程序要求:若其值加5后的字符值大于’z’,将其转换成从a开始的字符。输入:‘A’输出:‘f’package 华为机试题;/** * @author Hutongling * * @time:2017年4月8日 下午9:41:52 */public class 将字符转换为小写并加5后输出结果 {原创 2017-04-08 21:50:28 · 564 阅读 · 0 评论 -
汽水瓶
题目描述 有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝? 输入原创 2017-08-19 16:56:22 · 716 阅读 · 0 评论