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

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

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

题目:

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

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

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

规则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];   //输出最佳女猪脚
    }
}

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • OSG与CEGUI集成过程

    OSG与CEGUI集成过程最近做了一段时间的CEGUI和OSG之间的结合,有一点小小的收获。写一篇文章来记录所做的一点点事情。下面写一点CEGUI和OSG之间结合的东西。一.整体过程概述:CEGUI作为OSG的Drawable集成到OSG中。CEGUI继承osg::Drawable类,作为一个Drawable完成初始化,加入到一个节点中(osg::Geode)。然后将该节点在Viewerd执行realize()

  • goland 2022.01 激活码_最新在线免费激活2022.01.29

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

  • 用CSS3实现钟表效果

    用CSS3实现钟表效果

  • 【经典算法大全】收集51种经典算法 初学者必备

    【经典算法大全】收集51种经典算法 初学者必备《经典算法大全》是一款IOS平台的应用。里面收录了51种常用算法,都是一些基础问题。博主觊觎了好久,可悲哀的是博主没有苹果,所以从网上下了老奔的整理版并且每个都手敲了一遍。虽然网上也有博客贴了出来,但是自己写写感觉总是好的。现在分享个大家。代码和运行结果难免有出错的地方,请大家多多包涵。 1.河内之塔(汉诺塔)2.费式数列3.巴斯卡三角形4.三色棋5.老鼠走迷宫(1

  • Protostuff使用示例

    Protostuff使用示例Protostuff使用示例1、引入Maven依赖的JAR包&amp;lt;dependency&amp;gt;&amp;lt;groupId&amp;gt;io.protostuff&amp;lt;/groupId&amp;gt;&amp;lt;artifactId&amp;gt;protostuff-core&amp;lt;/artifactId&amp;gt;

  • 软件评测师-自动化测试技术

    软件评测师-自动化测试技术一、概述1.自动化测试是把人为驱动的测试行为转化为机器执行的一种过程,模拟手工测试步骤,通过由程序语言编制的测试脚本,自动地完成软件的测试设计、单元测试、功能测试、性能测试等工作,包括测试活动的自动

发表回复

您的电子邮箱地址不会被公开。

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