华为上机Java实现
2011-09-13 16:45
309 查看
今天闲着没事做,就把7号那天做的机试做了一遍。最主要是做了最后一个题。都是延续当时考试的思路来做的,没有想更好的解法,只是想看看当时的第一思维方法是不是能做出来……希望大神们多多指正。写的比较龊,请多多指正,特别是如果有bug,请指正。用的是Java实现的,公司只有Eclipse,而且,Java做起来也要简单点,另外要装VS得申请 —_—
具体题目在前面/article/8906835.html。等几天把第三题转换成后缀表达式做做 —_—
第一题
第二题
第三题
具体题目在前面/article/8906835.html。等几天把第三题转换成后缀表达式做做 —_—
第一题
/* * 输入字符串长度,字符串。从后向前比较,以最短字符串为标准 输出不同的元素的个数 */ public int getDiffNum(int len1, String str1, int len2, String str2) { int myCount = 0; int myLen = 0; String[] myStr1 = str1.split(","); String[] myStr2 = str2.split(","); if (len1 > len2) { myLen = len2; } else myLen = len1; for (int i = 0; i < myLen; ++i) { if (!myStr1[len1 - i - 1].equals(myStr2[len2 - i - 1])) { ++myCount; } } return myCount; }
第二题
/* * 输入字符串长度,字符串,计数m。从前往后技术,当数道m个元素时,m个元素出列,同时将该元素赋值给m, * 然后从下一个数计数循环,直到所有数字都出列位置,给定的数全部为大于0的数字。 * 输出出队队列 */ public String getOutString(int len, String str, int m) { StringBuffer sBuffer = new StringBuffer(""); String[] myStr = str.split(","); int[] myInt = new int[len]; int myLen = len; int nNum = m % myLen; int temp = 0; for (int i = 0; i < len; ++i) { myInt[i] = Integer.parseInt(myStr[i]); } while (myLen > 0) { if (nNum == 0) { temp = myInt[myLen - 1]; } else { temp = myInt[nNum - 1]; for (int i = nNum; i < myLen; ++i) { myInt[i - 1] = myInt[i]; } } --myLen; if (myLen > 0) { if (nNum == 0) { nNum = temp % myLen; } else { nNum = temp % myLen + (nNum - 1); if (nNum > myLen - 1) nNum = nNum % myLen; } } sBuffer.append(temp); if (myLen > 0) sBuffer.append(","); } return sBuffer.toString(); }
第三题
/* * 输入一个表达式,3*8+7-2,没有括号 输出结果 */ public int getMyRet(String str) { char[] myCh = str.toCharArray(); int loopLen = myCh.length; String[] myStr = new String[loopLen]; int ret = 0; int op1 = 0; int op2 = 0; boolean mFlag = true; int i = 1; // 循环变量 for (int j = 0; j < myCh.length; ++j) { myStr[j] = Character.toString(myCh[j]); } // 处理乘除法 while (mFlag) { for (; i < loopLen - 1; ++i) { if ("*".equals(myStr[i]) || "/".equals(myStr[i])) { op1 = Integer.parseInt(myStr[i - 1]); op2 = Integer.parseInt(myStr[i + 1]); if ("*".equals(myStr[i])) { ret = op1 * op2; } else { ret = op1 / op2; } mFlag = true; myStr[i - 1] = Integer.toString(ret); for (int j = i; j < loopLen - 2; ++j) { myStr[j] = myStr[j + 2]; } loopLen = loopLen - 2; break; } // 乘法 和 除法 已经 运算完了 if (i == loopLen - 2 || loopLen == 1) { mFlag = false; break; } } // 乘法 和 除法 已经 运算完了 if (loopLen == 1) { mFlag = false; break; } } if (loopLen > 1) { mFlag = true; i = 1; } else { mFlag = false; } // 加减法运算 while (mFlag) { for (; i < loopLen - 1; ++i) { if ("+".equals(myStr[i]) || "-".equals(myStr[i])) { op1 = Integer.parseInt(myStr[i - 1]); op2 = Integer.parseInt(myStr[i + 1]); if ("+".equals(myStr[i])) { ret = op1 + op2; } else { ret = op1 - op2; } mFlag = true; myStr[i - 1] = Integer.toString(ret); for (int j = i; j < loopLen - 2; ++j) { myStr[j] = myStr[j + 2]; } loopLen = loopLen - 2; break; } } // 加法 和 减法 已经 运算完了 if (loopLen == 1) { mFlag = false; break; } } return ret; }
相关文章推荐
- 华为校招上机笔试试题(A卷)——java实现
- 华为校园招聘上机试题 Java实现(一)
- 华为上机题整理1——Java实现
- 华为校招上机笔试试题(B卷)——java实现
- 华为校园招聘上机试题Java实现(一)
- 华为校园招聘上机试题Java实现(二)
- 华为校园招聘上机试题 Java实现(二)
- 软件体系结构上机实验 面向对象体系结构风格的 KWIC 关键词索引系统设计与实现 java
- 华为OJ ---找出字符串中第一个只出现一次的字符(java实现)
- java ------华为上机机试--计算字符串个数
- 华为Java上机题
- 2012届华为校园招聘机试题(java实现)
- 华为机考2015(1)JAVA实现
- 华为上机测试题(及格分数线-java)
- 华为上机 字符串合并处理 java
- 华为面试上机题及答案 JAVA写的
- 华为2014 第三题地铁换乘 java实现
- 2012届华为校园招聘上机考试题目程序实现(9月6日下午1点场)
- 华为机试三道题(Java实现)
- 华为机考2015(2)JAVA实现