2017华为实习生笔试题汇总
2017-07-02 11:47
239 查看
1、字符串大小写转换:写出一个程序,输入一个字符串,然后输出大写转换为小写之后的字符串。不在字母范围内的字符,需丢弃。例如1:输入:ABC,输出:abc;例如2:输入:AbC输出:abc。
第一道题很简单,直接上代码:
输入描述:输入若干个“11010”,“00110”的由0,1组成的长度等于5的字符串,代表指定团队中每个人福卡获得情况,
注:1人也可以是一个团队;1人可以有0-5张福卡,但福卡不能重复。
输出描述:输出该团队能凑齐多少套五福。
写一个postfixCalc函数,该函数根据输入的后缀表达式方式的字符串,输出计算的结果。例如:postfixCalc(32+5-)==0.
输入描述:输入的字符串中包含0~9和A~F(大写字母,A代表10,B代表11,C代表12...)代表参与运算的数字,运算符为+、-、*、/
可以假定输入总是正确的表达式,不需要进行异常判断。
输出描述:通过函数返回输出结果。
第一道题很简单,直接上代码:
public class StringUpperLower { public static void main(String[] args) { Scanner in = new Scanner(System.in); while(in.hasNext()) { String s = in.nextLine(); StringBuilder sb = new StringBuilder();//存储转换后的结果 for(int i=0;i<s.length();i++) { char c = s.charAt(i); if(c >= 'A' && c <= 'Z') sb.append((char)(c+32)); else if(c >= 'a' && c <= 'z') sb.append(c); } System.out.println(sb); } in.close(); } }2、集五福:以0和1组成的长度为5的字符串代表每个人所得到的福卡,每一位代表一种福卡,1表示已经获得该福卡,单类型福卡不超过一张,随机抽取一个小于10人团队,求该团队最多可以集齐多少套五福。
输入描述:输入若干个“11010”,“00110”的由0,1组成的长度等于5的字符串,代表指定团队中每个人福卡获得情况,
注:1人也可以是一个团队;1人可以有0-5张福卡,但福卡不能重复。
输出描述:输出该团队能凑齐多少套五福。
public class FiveBlissColection { public static void main(String[] args) { Scanner in = new Scanner(System.in); while(in.hasNext()) { String s = in.nextLine(); int len = s.length(); int[] count = new int[5]; for(int i=0;i<5;i++) { for(int j=0;j<len/5;j++) count[i] += s.charAt(5*j+i)-48; } int min = Integer.MAX_VALUE; for(int i=0;i<5;i++) { if(count[i] < min) min = count[i]; } System.out.println(min); } in.close(); } }3、后序表达式计算:
写一个postfixCalc函数,该函数根据输入的后缀表达式方式的字符串,输出计算的结果。例如:postfixCalc(32+5-)==0.
输入描述:输入的字符串中包含0~9和A~F(大写字母,A代表10,B代表11,C代表12...)代表参与运算的数字,运算符为+、-、*、/
可以假定输入总是正确的表达式,不需要进行异常判断。
输出描述:通过函数返回输出结果。
public class PostfixCalculator { //定义操作符常量 private static final char PLUS = '+'; private static final char MINUS = '-'; private static final char MULTIPLY = '*'; private static final char DIVIDE = '/'; private Stack<Integer> stack; public PostfixCalculator() { stack = new Stack<Integer>(); } /** * 计算后缀表达式的结果 * @param expression 后缀表达式的字符串表示形式 * @return 表达式的计算结果 */ public int postfixCalc(String expression) { int op1,op2,result = 0; //临时变量,保存操作符和中间结果 char token; //字符 for(int i=0;i<expression.length();i++) //循环获取每一个字符 { token = expression.charAt(i); if(isOperator(token)) //如果是操作符,就弹出 { op2 = (stack.pop()).intValue(); op1 = (stack.pop()).intValue(); result = calculateSingleOperator(token,op1,op2); //计算中间结果 stack.push(result); //将中间结果压入栈 } else if(token>='0' && token<='9') //字符为0~9之间的数字,直接入栈 stack.push((int)(token-'0')); else if(token>='A' && token<='F') stack.push((int)(token-'A'+10));//字符为A~F之间的大写字母,将其转换为相应的数字再入栈 } return result; } /** * 计算每一部分的表达式 * @param operator 操作符 * @param op1 中间变量,操作符左边 * @param op2 中间变量,操作符右边 * @return 中间结果 */ private int calculateSingleOperator(char operator, int op1, int op2) { int result = 0; //分情况计算 switch (operator) { case PLUS: result=op1+op2; break; case MINUS: result=op1-op2; break; case MULTIPLY: result=op1*op2; break; case DIVIDE: result=op1/op2; break; } return result 7d74 ; } /** * 判断是否为操作符 * @param token 字符 * @return */ private boolean isOperator(char token) { return (token==PLUS || token==MINUS || token==MULTIPLY || token==DIVIDE); } public static void main(String[] args) { PostfixCalculator test = new PostfixCalculator(); Scanner in = new Scanner(System.in); while(in.hasNext()) { System.out.println(test.postfixCalc(in.nextLine())); } in.close(); } }
相关文章推荐
- 腾讯2017暑期实习生笔试题解题答案汇总
- 华为2017实习生招聘笔试题-水仙花数
- 腾讯2017暑期实习生笔试题解题答案汇总
- 华为 2017 实习生招聘笔试题
- 2017华为暑期实习生校招笔试
- 华为2017实习生招聘笔试题-任务调度
- [置顶] 2017腾讯暑期实习生从笔试到面试总结(附带华为、阿里面试经历)
- 华为2017实习生招聘笔试题-公司年会
- 2017网易游戏雷火盘古实习生招聘笔试真题:推箱子 [python]
- 网易2017实习生招聘笔试题—奇怪的表达式求值
- 牛客网-2017网易游戏雷火盘古实习生招聘笔试真题-解题思路及源码
- tencent 2017暑期实习生-软件测试笔试题(回忆篇)
- 网易互娱2017实习生招聘在线笔试(一)
- [笔试编程题] 腾讯2017暑期实习生编程题-java
- 华为2017实习生面试
- 木棒拼图(multiset 的应用)----今日头条2017后端工程师实习生笔试题
- 网易互娱2017实习生招聘游戏研发工程师在线笔试第二场 C
- 【牛客网】今日头条2017客户端工程师实习生笔试题
- 2017网易游戏雷火盘古实习生招聘笔试真题:字符串编码 [python]
- 2017 实习生 阿里巴巴 java开发工程师笔试题 字符串匹配