设为首页 收藏本站
查看: 1883|回复: 0

[经验分享] 2012.9.19华为机试java题目

[复制链接]

尚未签到

发表于 2016-6-7 06:49:15 | 显示全部楼层 |阅读模式
1、求数组里比平均数大的数的个数。
   int avgNum(int arg[])

package org.hhu.ztc;
public class Test1 {
public static void main(String args[]) {
System.out.println(new Test1().avgNum(new int[] { 1, 2, 3, 4, 5, 6, 7,
8, 9, 10 }));
}
public int avgNum(int s[]) {
int sum = 0;
int len = s.length;
int flag = 0;
double avg;
for (int i = 0; i < len; i++) {
sum = sum + s;
}
avg = (sum + 0.0) / len;
for (int i = 0; i < len; i++) {
if (s >= avg)
flag++;
}
return flag;
}
}







2、两大数相加。
用java.math.BigInteger类
注:必须是正整数相加

package org.hhu.ztc;
import java.math.BigInteger;
public class Test2 {
public static void main(String args[])
{
System.out.println(new Test2().plusBigNum("123456789","987654321"));
}
public String plusBigNum(String arg1, String arg2)
{
BigInteger big1 = new BigInteger(arg1);
BigInteger big2 = new BigInteger(arg2);
return big1.add(big2).toString();
}
}

不用java.math.BigInteger类

package org.hhu.ztc;
public class BigIntegerOperation {
public static void main(String args[]) {
String num1 = "12345";
String num2 = "54321";
int len1 = num1.length();
int len2 = num2.length();
/**
* 将不等长的两输入字符串格式化,比如 num1 = 123 num2 = 1234 经格式化后将成为num1 = 0123 num2 =
* 1234为方便计算
*/
if (len1 > len2) {
for (int i = 0; i < len1 - len2; i++) {
num2 = "0" + num2;
}
} else if (len2 > len1) {
for (int i = 0; i < len2 - len1; i++) {
num1 = "0" + num1;
}
}
int[] arr1 = BigIntegerOperation.str2intArr(num1);
int[] arr2 = BigIntegerOperation.str2intArr(num2);
int[] result = BigIntegerOperation.add(arr1, arr2);
for (int i = result.length - 1; i >= 0; i--) {
if (i == result.length - 1 && result == 0)
continue;
System.out.print(result);
}
}
/**
* 将字符串转换成整型数组
*/
public static int[] str2intArr(String str) {
int len = str.length();
int[] arr = new int[len];
for (int i = 0; i < len; i++) {
arr = str.charAt(i) - '0';
}
return arr;
}
/**
* 核心方法 两个整型数组相加
*/
public static int[] add(int a[], int b[]) {
int maxLen = a.length;
int[] sum = new int[maxLen + 1];
for (int i = 0; i < maxLen; i++) {
int tempSum = a + b;
sum += tempSum % 10;
int d = tempSum / 10; // 进位
sum[i + 1] += d;
}
return sum;
}
}

3、求字符串中最大回文子串。
如输入ababbac 输出abba

package org.hhu.ztc;
public class Test3 {
public static void main(String args[]) {
System.out.println(new Test3().getPalindromeString("ababbac"));
}
public String getPalindromeString(String inputString) {
int len = inputString.length();
for (int i = 0; i < len; i++) {
for (int j = 0; j < i + 1; j++) {
String sub = inputString.substring(j, len - i + j);
String subReverse = new StringBuffer(sub).reverse().toString();
if (sub.equals(subReverse))
return sub;
}
}
return "无回文子串";
}
}


3.补充,求出所有回文子串及最大回文子串

package org.hhu.ztc;
public class Test3 {
public static void main(String args[]) {
new Test3().getPalindromeString("ababbac");
}
public String[] getPalindromeString(String inputString) {
int len = inputString.length();
String s1[] = new String[len * (len + 1) / 2];
String s2[] = new String[len * (len + 1) / 2];
int n = 0;
for (int i = 0; i < len; i++) {
for (int j = 0; j < i + 1; j++) {
String sub = inputString.substring(j, len - i + j);
String subReverse = new StringBuffer(sub).reverse().toString();
if (sub.equals(subReverse)) {
s1[n] = sub;
n++;
}
}
}
int m = 0;
int maxlen = 0;
if (s1[0] != null) {
maxlen = s1[0].length();
for (int i = 0; i < n; i++) {
if (s1.length() == maxlen) {
s2[m] = s1;
m++;
}
}
}
//未考虑重复
System.out.println("所有回文子串:");
for(int i=0;i<n;i++)
{
System.out.println(s1);
}
System.out.println("最大回文子串:");
for(int i=0;i<m;i++)
{
System.out.println(s2);
}
return s2;
}
}

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-227125-1-1.html 上篇帖子: [C/C++]华为机试题 2011-9-17 下篇帖子: 路由器和网桥的主要区别(华为网络试题)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表