华为上机练习题–姓名夫妻相「建议收藏」

华为上机练习题–姓名夫妻相

大家好,又见面了,我是全栈君。

题目:

在中国,形容夫妻恩爱的词汇中,大家用的比較多的就是“夫妻相”。所谓“夫妻相”,就是两个人看上去比較般配。长相、身材等某些方面有一定的相似度。本题则另辟蹊径,从人的姓名维度,以字母反复个数来寻找最具“夫妻相”的人。

题目中预先给定一组女士的姓名拼音。

输入男士的姓名拼音(拼音中间能够有空格,字母所有小写),依预先给定姓名拼音的先后遍历所有姓名。输出字母反复数最多的女士姓名。

规则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”

执行时间限制:  无限制 内存限制:  无限制

输入:  输入一个男士姓名,字符串

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

分析: 从这题目中我们也能够看出去重的影子,所以先敲定set。 之后的就是依次循环推断包括字符的个数了。 所以这个也是非常easy的题目,废话不多说。 奉上代码;

代码例如以下:

package com.wenj.test;

import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.Set;

public class TestSelectTheCouple {

    public static void main(String args[]) {
        String strIn = “li ling”;
        TestSelectTheCouple ts = new TestSelectTheCouple();
        System.out.println(ts.selectTheCouple(strIn));
    }

    public String selectTheCouple(String strIn) {
        String strTemp = strIn.replaceAll(” “, “”);
        String[] wArr = { “wang fei”, “zhang man yu”, “zhang zhi yi”,
                “li li”, “li xiao man”, “li yu cun”, “yang ni”, “xiao tong”,
                “li lei”, “zhang san” };
        int[] p = new int[wArr.length];  //存储同样字符个数的数组
        
        char[] ca = strTemp.toCharArray();
        Set<Character> ms = new LinkedHashSet<Character>();
        for(int i=0; i<ca.length; i++){
            ms.add(ca[i]);
        }
        
        int count = 0;
        for(int i=0; i<wArr.length; i++){  //推断各个女的与输入男的同样字符个数并将结果存储在p中
            for(Iterator<Character> it=ms.iterator(); it.hasNext(); ){
                char temp = it.next();
                if(wArr[i].contains(temp+””)){
                    count++;
                }
            }
            p[i] = count;
            count = 0;
        }
        
        int max = p[0];
        int pos = 0;
        for(int i=1; i<p.length; i++){//找出同样字符最多的
            if(p[i]>max){
                max = p[i];
                pos = i;
            }
        }
        
        return wArr[pos];   //输出最佳女猪脚
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115810.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python浮雕图片_用Python来画浮雕画

    python浮雕图片_用Python来画浮雕画浮雕艺术在世界各地都可以见到,中国古代在唐朝以来就有许多浮雕效果的东西,很多的大型纪念性建筑都有这种作为装饰,常见的有花窗,龙柱等。简单的来说,浮雕就是把所要呈现的图像突起于石头表面,根据凹凸的程度不同从而形成三维的立体感。用Python画一张浮雕画,那就进行类似的原理,通过勾画图像的轮廓,并且降低周围的像素值,那就可以产生一张具有立体感的浮雕效果图片。我们可以采用相邻像素相减的方法来得到轮廓与平…

    2022年6月20日
    31
  • java 优先级队列_JAVA 队列

    java 优先级队列_JAVA 队列优先级队列是比栈和队列更专用的结构,在多数情况下都非常有用。优先级队列像普通队列一样,有一个队头和队尾,并且也是从队头移除数据。优先级队列中,数据按关键词有序排列,插入新数据的时候,会自动插入到合适的位置保证队列有序。举个例子来说,一组整型数,如果使用优先级队列的话,不管队列之前放入的数据如何,后面添加进去的数据总会被按照升序或者降序排列,当然这个只是优先级队列最基本的使用,在实际生产中可能有…

    2022年9月15日
    2
  • springboot eclipse 热部署

    springboot eclipse 热部署springboot热部署配置很简单,并且配置好后开发变的非常舒服,修改东西后再也不用重新启动服务了!一、pom.xml添加依赖       org.springframework.boot        spring-boot-devtools        true                  org.springframework

    2022年5月20日
    31
  • idea激活码永久【2021.10最新】

    (idea激活码永久)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月28日
    58
  • 罗技键盘手机app_罗技k480键盘教程

    罗技键盘手机app_罗技k480键盘教程1罗技Android平板键盘:概况前言:相信有很多平板用户都羡慕华硕推出的一款带外接键盘功能的平板吧,现在不用垂涎欲滴了,因为罗技已经看到平板电脑用户群中对外接键盘输入的需求,推出了罗技平板电脑键盘,下面就和我们一起关注一下吧。罗技平板电脑键盘(支持Android)概况介绍:打开罗技平板电脑键盘的包装,我们发现只有一个黑盒子,其实这个扁平的黑盒子是用于架设放置平板电脑的。打开黑盒子,里面蓝色的内饰…

    2022年10月15日
    3
  • JAVA 二分法

    JAVA 二分法JAVA 二分法

    2022年4月23日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号