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[i];
}
avg = (sum + 0.0) / len;
for (int i = 0; i < len; i++) {
if (s[i] >= 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[i] == 0)
continue;
System.out.print(result[i]);
}
}
/**
* 将字符串转换成整型数组
*/
public static int[] str2intArr(String str) {
int len = str.length();
int[] arr = new int[len];
for (int i = 0; i < len; i++) {
arr[i] = 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[i] + b[i];
sum[i] += 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[i].length() == maxlen) {
s2[m] = s1[i];
m++;
}
}
}
//未考虑重复
System.out.println("所有回文子串:");
for(int i=0;i<n;i++)
{
System.out.println(s1[i]);
}
System.out.println("最大回文子串:");
for(int i=0;i<m;i++)
{
System.out.println(s2[i]);
}
return s2;
}
}
分享到:
相关推荐
目录华为 OD 机试 - 最快到达医院的方法(Java & JS & Python)2023Q1 逻辑分析....................9华为 OD 机试 - 工单调度策略(Java & JS & Python)2023Q1 优先队列..............................12华为 OD ...
这份压缩包中的资源,"华为机试过的java题目",显然提供了丰富的实践题目,旨在帮助求职者提升Java编程技能和应对面试的能力。以下将对可能涉及的Java知识点进行详细解析: 1. **基础语法**:包括类、对象、变量、...
华为机试一霸教你过华为机试 华为机试是一种非常重要的考试形式,对于软件类岗位的招聘来说,机试的地位非常重要。机试之前,需要调整好自己的心态,不要觉得写程序很难,机试题很难,也不要去考虑,万一机试考到...
5. 算法思想:华为机试中所考察的题目虽然简单,但背后反映的是算法思想的考察,如递归思想、迭代思想等。例如,在字符串到整数转换题中,可以使用递归思想来实现,也可以使用迭代思想来实现。同样,在数组每列...
华为机试算法题总结 本文主要讲述了华为机试的算法题总结,包括了经验分享和机试准备的建议。以下是从中提取的知识点: 1. 机试准备: 在机试之前,需要调整好自己的心态,不要觉得写程序很难,也不要去考虑万一...
1. **基础编程**:这是所有机试题目的基石,包括但不限于C、C++、Java、Python等主流编程语言的基本语法、数据类型、控制结构(如循环、条件语句)、函数定义与调用等。 2. **算法与数据结构**:算法是解决复杂问题...
- **正确认识机试**:不要过分夸大机试难度,机试题目的设计往往是基于基础知识点的考察。 - **积极面对挑战**:遇到不会的题目时,保持冷静,寻求他人的帮助,避免陷入自我怀疑。 **2. 技术准备** - **学习...
华为OD机试真题中涉及的编程知识点包括: 1. 货币转换功能实现:程序需要处理人民币(CNY)、美元(USD)、英镑(GBP)、港币(HKD)之间的价值转换,包括最大兑换和最小兑换两种方式。 2. 汇率处理:题目中给出了默认汇率...
2014华为机试重邮第一场题目(2013.9.14)
华为机试复习资料是针对想要在华为公司求职的程序员们准备的重要参考资料,它涵盖了华为历年来的面试编程题目以及相关的解题代码。这份资料的核心目的是帮助考生熟悉华为的面试流程,提高他们在技术面试中的表现,...
9. 华为 OD 机试 - 九宫格(Java & JS & Python):这道题目考察了全队列的知识点。全队列是一种搜索算法,可以用来查找所有可能的解。 10. 华为 OD 机试 - 日志限流(Java & JS & Python):这道题目考察了二分...
【2014重邮华为机试题目】是2013年9月14日和15日在重庆邮电大学进行的华为公司校园招聘活动的一部分。华为作为全球知名的电信设备与服务提供商,其校园招聘历来备受关注,尤其是对技术人才的需求。机试,即在线编程...
华为机试编程样题是一种类似于算法设计的编程题目,主要考察应聘者的基本编程能力和算法设计能力。这些题目通常来自于leetcode、codewars、hackerRank等平台,涵盖了数组、链表、指针、字符串、循环、枚举、排序等...
从给定的文件内容可以看出,这是一份华为机试题目的总结。华为机试是华为公司针对应聘者进行的一种编程能力测试,涉及到的知识点广泛,涵盖了字符串处理、数据结构、算法等多个方面。以下是对文件内容中提及的知识点...
华为机试一霸教你过华为机试演讲稿..pdf
40道客观题(30道单选+10道多选),仅有题干,答案自行百度~
//华为机试题目总结(程序篇).pdf
《华为机试:Visual C++与C++编程实践解析》 华为公司作为全球知名的科技巨头,在招聘过程中,尤其重视候选人的编程能力。针对C++和Visual C++的掌握程度,华为常常设置机试环节,以考察应聘者的实际编程水平。本...
华为机试-姓名的夫妻相.java