java面试题--百度华为的面试题---直接贴代码了

本文解析了百度和华为的面试算法题,包括概率题、素数查找及字符串压缩算法。提供了完整的Java实现代码,并展示了如何通过迭代算法寻找指定范围内的素数,以及如何压缩重复字符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*8月15日,百度2道面试题:
1、来自《编程之美》的概率题:一个桶里面有白球、黑球各100个,现在按下述规则取球:的
   i 、每次从通里面拿出来两个球;
   ii、如果取出的是两个同色的求,就再放入一个黑球;
   ii、如果取出的是两个异色的求,就再放入一个白球。
问:最后桶里面只剩下一个黑球的概率是多少?    100%   因为白球总是两个两个的拿
2、算法题:给你一个自然数N,求[6,N]之内的所有素数中,两两之和为偶数的那些偶数。*/

/*9月5日,华为2014校园招聘的机试题目
通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。
压缩规则:
   1、仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc"。
   2、压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz"。
要求实现函数: 
    void stringZip(const char *pInputStr, long lInputLen, char *pOutputStr);
   输入pInputStr:  输入字符串lInputLen:  输入字符串长度
   输出 pOutputStr: 输出字符串,空间已经开辟好,与输入字符串等长;
注意:只需要完成该函数功能算法,中间不需要有任何IO的输入输出
示例 
   输入:“cccddecc”   输出:“3c2de2c”
   输入:“adef”     输出:“adef”
   输入:“pppppppp” 输出:“8p”*/

package interview;

import java.util.Scanner;
import java.util.Set;
import java.util.HashSet;
public class Interview1{

public static void main(String[] args){
int is=1;
Set<Integer> set=new HashSet<Integer>();
Scanner in=new Scanner(System.in);
System.out.println("请输入一个大于6的数:");
int num=in.nextInt();

for(int i=6;i<=num;i++){
for(int j=2;j<i;j++){
if(i/j*j==i){
is=0;
break;
}
}
if(is==1){
set.add(i);
System.out.println(i);
}
is=1;

}

Object[] ob=set.toArray();
for(int i=0;i<ob.length;i++){
for(int j=i+1;j<ob.length;j++){
int sum=Integer.parseInt(ob[i].toString())+Integer.parseInt(ob[j].toString());
System.out.println("和为:"+sum);
}
}

}

}



package interview;


import java.util.Scanner;


public class Interview2{

public static void main(String[] args){
int num=1;
Scanner in=new Scanner(System.in);
StringBuffer newStr=new StringBuffer();
System.out.println("请输入一个字符串");
String oldStr=in.next();
char[] array=oldStr.toLowerCase().toCharArray();
for(int i=0;i<array.length;i++){
for(int j=i+1;j<array.length;j++){
if(array[i]!=array[j]){
break;
}
num++;
i++;
}
if(num>1){
newStr.append(num);
}
newStr.append(array[i]);
num=1;
}
System.out.println(newStr);

}
}



有更好的建议或算法还望指教!!!!(初次写博客)

或者有更多好的题目留下脚印吧互相讨论!!!!

 




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值