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