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

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

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

题目:

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

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

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

规则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 使用 with open() as 读写文件

    python 使用 with open() as 读写文件读文件:要以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标示符:&gt;&gt;&gt;f=open(‘E:\python\python\test.txt’,’r’)标示符’r’表示读,这样,我们就成功地打开了一个文件。如果文件不存在,open()函数就会抛出一个IOError的错误,并且给出错误码和详细的信息告诉你文件不存在:…

    2022年6月2日
  • 负数的二进制表示方法「建议收藏」

    负数的二进制表示方法「建议收藏」负数的二进制表示方法假设有一个int类型的数,值为3,那么,我们知道它在计算机中表示为:00000000000000000000000000000011因为int类型的数占用4字节(32位),所以前面填了一堆0。在计算机中,负数以其正值的补码形式表达。什么叫补码呢?这得先从原码,反码说起。原码:一个整数,按照绝对值大小转换成的二进制数,称为原码。比如

    2022年11月2日
  • log4j2.xml放在哪里_log4j日志配置详解

    log4j2.xml放在哪里_log4j日志配置详解  一、log4j2介绍  log4j2.x版本不再支持像1.x中的.properties后缀的文件配置方式,2.x版本配置文件后缀名只能为”.xml”,”.json”或者”.jsn”。配置文件的格式:log2j配置文件可以是xml格式的,也可以是json格式的。配置文件的位置:log4j2默认会在classpath目录下寻找log4j2.xml、log4j.json、log4j.jsn等…

    2022年9月30日
  • vue网络图片url转Base64「建议收藏」

    vue网络图片url转Base64「建议收藏」单张图片转Base64<script>methods:{ //异步执行 imageUrlToBase64(){ //一定要设置为let,不然图片不显示 letimage=newImage(); //解决跨域问题 image.setAttribute(‘crossOrigin’,’anonymous’); let…

    2022年9月16日
  • 【Pycharm】Pycharm专业版 社区版 教育版区别「建议收藏」

    【Pycharm】Pycharm专业版 社区版 教育版区别「建议收藏」因为刚接触python,对pythonIDE不够了解,通过各方面的查找对比最终还是选择了pycharm,对于新手来说社区版的功能足够满足需求。还可以使用sublimetext编译器(好像是收费的)进行代码编译,还有很多我这边就不一一列举了。附上PyCharm官网链接pycharm下载这篇博客来记录介绍一下pycharm各个版本的区别pycharm是一专注于python的集成开发环境,…

    2022年8月25日
  • 求助,后台跳转至前台,如何实现,谢谢

    求助,后台跳转至前台,如何实现,谢谢

    2021年9月21日

发表回复

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

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