最具夫妻相

题目描述

在中国,形容夫妻恩爱的词汇中,大家用的比较多的就是夫妻相。所谓夫妻相,就是两个人看上去比较般配,长相、身材等某些方面有一定的相似度。本题则另辟蹊径,从人的姓名维度,以字母重复个数来寻找最具夫妻相的人。题目中预先给定一组女士的姓名拼音。输入男士的姓名拼音(拼音中间可以有空格,字母全部小写),依预先给定姓名拼音的先后遍历所有姓名,输出字母重复数最多的女士姓名。

规则1:如果字母重复数最多的女士有多位相同,则以最先匹配的女士做为最具夫妻相的人选。

规则2:人名中的相同字母,按重复一次处理。例如:li ling li lei 重复的字符个数为2,而不是4

预置女士名单(先后循序必须保证):

"wang fei","zhang man yu","zhang zhi yi","li li","li xiao man","li yu cun","yang ni","xiao tong","li lei","zhang san"

输入

输入一个男士姓名

输出

输出最具夫妻相的女士姓名

样例输入

li si

样例输出

li li

提示

地区

公共

产品线

公共

阶段

入职前练习

public static void main(String[] args) {
		String input="wang fei,zhang man yu,zhang zhi yi,li li," +
				"li xiao man,li yu cun,yang ni,xiao tong,li lei,zhang san";
		String[] femaleNames=input.split(",");
		getHusbandWifeLooks(femaleNames);
	}
public static void getHusbandWifeLooks(String[] femaleNames){
		Scanner sc=new Scanner(System.in);
		String maleName=sc.nextLine();
		LinkedHashSet<Character> ls=new LinkedHashSet<Character>();
		LinkedHashMap<String,Integer> lhm=new LinkedHashMap<String,Integer>();
		int count=0;
		for(int i=0;i<femaleNames.length;i++){
			char[] c=femaleNames[i].toCharArray();
			for(int j=0;j<c.length;j++){
				if(c[j]!=32)
				  ls.add(c[j]);
			}
			for(char cc:ls){
				if(maleName.contains(String.valueOf(cc))){
					count++;
				}
			}
			ls.clear();
			lhm.put(femaleNames[i], count);
			count=0;
		}
		System.out.println(lhm);
		List<Map.Entry<String,Integer>> li=new ArrayList<Map.Entry<String,Integer>>(lhm.entrySet());
		Collections.sort(li, new Comparator<Map.Entry<String,Integer>>(){
			@Override
			public int compare(Entry<String, Integer> o1,Entry<String, Integer> o2) {
				return o2.getValue()-o1.getValue();
			}});
		System.out.println(li.get(0).getKey());
	}


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值