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

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

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

题目:

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

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

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

规则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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SQL语句面试题目_sql基础知识面试题

    SQL语句面试题目_sql基础知识面试题我自己编辑总结的sql面试题目大全,也是每条都验证过的第一类:sql面试题(学生表_课程表_成绩表_教师表)表结构,节选自:http://www.cnblogs.com/qixuejia/p/3637735.html题目一,节选,自:https://wenku.baidu.com/view/cda288f1b90d6c85ed3ac671.html题目二,节选,自:http://ww…

    2022年8月29日
    7
  • aria2最新tracker服务器,Aria2自动更新BT Tracker服务器列表的方法「建议收藏」

    aria2最新tracker服务器,Aria2自动更新BT Tracker服务器列表的方法「建议收藏」说明公开的BTtracker服务器,因为种种原因总会经常失效,要想获取更多的peer需要经常维护这份列表。感谢github上的小伙伴提供了这么一份tracker自动更新列表:https://github.com/ngosang/trackerslist。我们要想Aria2也支持自动更新这份列表,那么你可以按照下面方法来实现。关于Aria2安装使用教程可参考:https://www.moerats…

    2022年6月16日
    592
  • ioctl函数详解_函数concat的作用

    ioctl函数详解_函数concat的作用ioctl函数的作用特殊的read,write,当你用read,write不能完成某一功能时,就用ioctl我这里说的ioctl函数是在驱动程序里的,因为我不知道还有没有别的场合用到了ioctl,所以就规定了我们讨论的范围。为什么要写篇文章呢,是因为我前一阵子被ioctl给搞混了,这几天才弄明白它,于是在这里清理一下头脑。什么是ioctl。ioctl是设备驱动程序中对设备…

    2022年10月18日
    3
  • 使用BigDecimal进行科学计算表示方式的转换

    使用BigDecimal进行科学计算表示方式的转换使用BigDecimal进行科学计算表示方式的转换

    2022年6月17日
    27
  • leetcode-792匹配子序列的单词数(桶)

    leetcode-792匹配子序列的单词数(桶)原题链接给定字符串 S 和单词字典 words, 求 words[i] 中是 S 的子序列的单词个数。示例:输入: S = “abcde”words = [“a”, “bb”, “acd”, “ace”]输出: 3解释: 有三个是 S 的子序列的单词: “a”, “acd”, “ace”。注意:所有在words和 S 里的单词都只由小写字母组成。S 的长度在 [1, 50000]。words 的长度在 [1, 5000]。words[i]的长度在[1, 50]。题解暴力

    2022年8月8日
    2

发表回复

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

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