2016 广联达面试题4

问题描述:
 * 已知某次聚会共有N个人参加,这N个人来自26个不同的地区,先将26个地区用a-z进行表示,
 * 使用整数数组Location存储这N个人的地区,请返回一个boolean类型的变量

 * true代表所有人的地区都不一样,false代表存在一样地区的人。

下面是java实现的代码:在主函数中随便写了一些代码测试了一下函数的功能。

import java.util.Scanner;


public class Sub_4 {
static int person_num;
static char[] location = "abcdefghi".toCharArray();
public static void main(String[] args){
Scanner reader = new Scanner(System.in);
if(judgeLoc(location)){
System.out.println("there is  no same nation here. ");
}else{
System.out.println("there is same nation here.");
}


}
public static boolean judgeLoc(char[] loc){
int len = loc.length;
int[] countLoc =  new int[26];
int index;
//如果人数大于26,肯定存在相同的名族
if(len > 26){
return false;
}else{
//遍历整个loc数组,统计每一个字母出现的次数,如果出现的次数大于1,即存在相同名族
for(int i = 0; i < len; i++ ){
index = loc[i] - 'a';
countLoc[index]++;
}
for(int i = 0; i < 26; i++){
if(countLoc[i] > 1){
return false;
}
}
}
return true;

}
}


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值