[华为机试真题]69.姓名的夫妻相
题目
在中国,形容夫妻恩爱的词汇中,大家用的比较多的就是“夫妻相”。所谓“夫妻相”,就是两个人看上去比较般配,长相、身材等某些方面有一定的相似度。
本题则另辟蹊径,从人的姓名维度,以字母重复个数来寻找最具“夫妻相”的人。
题目中预先给定一组女士的姓名拼音。输入男士的姓名拼音(拼音中间可以有空格,字母全部小写),依预先给定姓名拼音的先后遍历所有姓名,输出字母重复数最多的女士姓名。规则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 10string 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}//forint 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}//forreturn girlName[index];
}int main(){string name;//freopen("C:\\Users\\Administrator\\Desktop\\acm.txt","r",stdin);// 预处理Init();while(getline(cin,name)){cout<<MaxDupicate(name)<<endl;}//whilereturn 0;
}
<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
[华为机试真题]69.姓名的夫妻相相关推荐
- [华为机试真题][2014]62.去除重复字符并排序
题目 描述: 去除重复字符并排序 运行时间限制: 无限制 内容限制: 无限制 输入: 字符串 输出: 去除重复字符并排序的字符串 样例输入: aabcdefff 样例输出: abcdef 代码 /*- ...
- 【华为机试真题 Python实现】查找众数及中位数
文章目录 前言 题目描述 示例 1 示例 2 参考代码 前言 <华为机试真题>专栏含牛客网华为专栏.华为面经试题.华为OD机试真题. 如果您在准备华为的面试,期间有想了解的可以私信我,我会 ...
- 【华为机试真题详解】不含 101 的数【2022 Q4 | 100分】
文章目录 前言 题目描述 输入描述 输出描述 示例 1 示例2 题目解析 参考代码 前言 <华为机试真题详解 Python实现>专栏含牛客网华为专栏.华为面经试题.华为OD机试真题. 如果 ...
- 【华为机试真题详解】开心消消乐【2022 Q4 | 100分】
文章目录 前言 题目描述 输入描述 输出描述 示例 1 题目解析 参考代码 前言 <华为机试真题详解 Python实现>专栏含牛客网华为专栏.华为面经试题.华为OD机试真题. 如果您在准备 ...
- 【华为机试真题 Python实现】篮球比赛【2022 Q1 Q2 | 200分】
文章目录 前言 题目描述 示例 1 参考代码 前言 <华为机试真题>专栏含牛客网华为专栏.华为面经试题.华为OD机试真题. 如果您在准备华为的面试,期间有想了解的可以私信我,我会尽可能帮您 ...
- 【华为机试真题详解】高矮个子排队
文章目录 前言 题目描述 示例 1 示例 2 示例 3 题目分析 参考代码 前言 <华为机试真题详解 Python实现>专栏含牛客网华为专栏.华为面经试题.华为OD机试真题. 如果您在准备 ...
- 【华为机试真题详解】优选核酸检测点【2022 Q4 | 100分】
文章目录 前言 题目描述 输入描述 输出描述 示例 1 题目解析 参考代码 前言 <华为机试真题详解 Python实现>专栏含牛客网华为专栏.华为面经试题.华为OD机试真题. 如果您在准备 ...
- 【华为机试真题 Python实现】热点网站统计【2022 Q1 Q2 | 100分】
文章目录 前言 题目描述 示例 1 参考代码 前言 <华为机试真题>专栏含牛客网华为专栏.华为面经试题.华为OD机试真题. 如果您在准备华为的面试,期间有想了解的可以私信我,我会尽可能帮您 ...
- 【华为机试真题 Python实现】华为机试题整理(已更新211篇)
文章目录 杂文 华为机试真题系列 牛客网华为机试系列 文章发布时间和导航更新时间可能不同步,会尽快更新
最新文章
- 程序员霸榜 2020 年十大高薪岗位,不料幸福度却垫底了!
- BZOJ 1800 [Ahoi2009]fly 飞行棋
- [driver]linux内核动态加载模块
- 设计模式 原型模式_创新设计模式:原型模式
- 国家开放大学2021春1080工程数学(本)题目
- 北美KubeCon新风,正把K8S魔力带向边缘计算
- java读取mysql配置文件_Linux运维:MySQL读写分离解决方案
- 盘点20个最好的数据科学Python库(附链接)
- 云小课 |选定合适的证书,做“有证”的合规域名
- 【Docker容器】进入容器的2种方式
- tomcat设置独立jvm的例子
- 网络安全法学习整理笔记
- Dart语言学习理由
- Mathematica绘制动态椭圆摆线(一)
- 想去看演唱却总是抢不到票?教你用Python制作一个自动抢票脚本
- When you want to give up, remember why you started.
- 第一届华数杯A题思路分析
- autocad2014 第二次打开闪退_解决win10下autocad2014闪退的修复方法
- 触动传媒总部人去楼空 上海多家出租车公司追讨欠款
- 4.4.1 ICMP报文的种类