关闭

[华为机试真题]69.姓名的夫妻相

标签: 华为机试真题
2032人阅读 评论(0) 收藏 举报
分类:

题目

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

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

运行时间限制:

无限制 

内存限制:

无限制 

输入:

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

输出:

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

代码

/*---------------------------------------
*   日期:2015-07-07
*   作者:SJF0115
*   题目:姓名的夫妻相
*   来源:华为机试真题
-----------------------------------------*/
#include <iostream>
#include <string>
#include <vector>
#include <stack>
#include <algorithm>
using namespace std;

#define GirlSize 10

string girlName[GirlSize+1] = {"wang fei","zhang man yu","zhang zhi yi","li li","li xiao man","li yu cun","yang ni","xiao tong","li lei","zhang san"};

vector<vector<int> > hash(GirlSize,vector<int>(26,0));

// 预处理女士姓名
void Init(){
    for(int i = 0;i < GirlSize;++i){
        int count = girlName[i].size();
        for(int j = 0;j < count;++j){
            if(girlName[i][j] != ' '){
                ++hash[i][girlName[i][j] - 'a'];
            }//if
        }//for
    }//for
}

string MaxDupicate(string name){
    int size = name.size();
    // 去掉重复字符
    vector<int> boyHash(26,0);
    for(int k = 0;k < size;++k){
        if(name[k] != ' '){
            ++boyHash[name[k] - 'a'];
        }//if
    }//for
    int count = 0;
    int max = 0;
    // 记录重复数最多的女孩下标
    int index = 0;
    // 比较 获取重复数
    for(int i = 0;i < GirlSize;++i){
        count = 0;
        for(int j = 0;j < 26;++j){
            if(hash[i][j] > 0 && boyHash[j] > 0){
                ++count;
            }//if
        }//for
        // 更新最大值
        if(max < count){
            max = count;
            index = i;
        }//if
    }//for
    return girlName[index];
}

int main(){
    string name;
    //freopen("C:\\Users\\Administrator\\Desktop\\acm.txt","r",stdin);
    // 预处理
    Init();
    while(getline(cin,name)){
        cout<<MaxDupicate(name)<<endl;
    }//while
    return 0;
}
0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

2014华为武汉上机试题二:姓名的夫妻相

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

用JAVA实现名字缘分测试

人生因爱情而改变,他是你最爱的人吗?你们相爱会有好的结局吗?不用发短信,就可以知道你们爱情的结局,千万不要错过哦。   其实原理没啥,基本就是笔画加减   相关的类 取名算法之用JAVA实现姓名...
  • luozhuang
  • luozhuang
  • 2013-03-28 10:01
  • 5462

华为机试—姓名的夫妻相

题目:夫妻相 在中国,形容夫妻恩爱的词汇中,大家用的比较多的就是“夫妻相”。所谓“夫妻相”,就是两个人看上去比较般配,长相、身材等某些方面有一定的相似度。 本题则另辟蹊径,从人的姓...
  • wdkirchhoff
  • wdkirchhoff
  • 2014-12-25 15:27
  • 1407

2014华为武汉上机试题二:姓名的夫妻相

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

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

题目: 在中国,形容夫妻恩爱的词汇中,大家用的比较多的就是“夫妻相”。所谓“夫妻相”,就是两个人看上去比较般配,长相、身材等某些方面有一定的相似度。本题则另辟蹊径,从人的姓名维度,以字母重复个数来寻...
  • zlw420123
  • zlw420123
  • 2014-07-06 00:50
  • 1434

2014华为机试真题(2)

1.数字是否存在相同部分         求一个整型数字中有没有相同的部分,例如12386123这个整型数字中相同的部分是123,相同的部分至少应该是2位数,如果有相同部分返回1,如果没有则返回0。...
  • qianhen123
  • qianhen123
  • 2015-08-14 22:01
  • 1205

2014华为机试真题(1)

1.及格线问题 10个学生考完期末考试评卷完成后,A老师需要划出及格线,要求如下: (1) 及格线是10的倍数; (2) 保证至少有60%的学生及格; (3) 如果所有的学生都高于60分,则及格线为6...
  • qianhen123
  • qianhen123
  • 2015-08-10 22:57
  • 606

[华为机试真题]72.操作系统任务调度问题

题目操作系统任务调度问题。操作系统任务分为系统任务和用户任务两种。其中, 系统任务的优先级 = 50且 <= 255。优先级大于255的为非法任务,应予以剔除。 现有一任务队列task[],长...
  • SunnyYoona
  • SunnyYoona
  • 2015-07-07 21:57
  • 1415

[华为机试真题]66.单词搜索

题目代码/*--------------------------------------- * 日期:2015-07-06 * 作者:SJF0115 * 题目:WordSearch * ...
  • SunnyYoona
  • SunnyYoona
  • 2015-07-06 21:54
  • 1504

[华为机试真题][2014]64.实现两个合法时间相加

题目描述: 给定两个合法的时间(格式固定:hh:mm:ss,时间合法,不用考虑其它情况),输入两个时间相加后的结果;注意,相加后的结果也必需是一个合法的时间; 附合法时间定义:小时在[00-23...
  • SunnyYoona
  • SunnyYoona
  • 2015-07-06 15:28
  • 1568
    个人资料
    • 访问:1453150次
    • 积分:21977
    • 等级:
    • 排名:第385名
    • 原创:624篇
    • 转载:133篇
    • 译文:60篇
    • 评论:187条
    博客专栏
    文章分类
    最新评论