题目
在中国,形容夫妻恩爱的词汇中,大家用的比较多的就是“夫妻相”。所谓“夫妻相”,就是两个人看上去比较般配,长相、身材等某些方面有一定的相似度。
本题则另辟蹊径,从人的姓名维度,以字母重复个数来寻找最具“夫妻相”的人。
题目中预先给定一组女士的姓名拼音。输入男士的姓名拼音(拼音中间可以有空格,字母全部小写),依预先给定姓名拼音的先后遍历所有姓名,输出字母重复数最多的女士姓名。
规则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"
运行时间限制:
无限制
内存限制:
无限制
输入:
输入一个男士姓名,字符串
输出:
输出最具“夫妻相”的女士姓名
代码
#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'];
}
}
}
}
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'];
}
}
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(max < count){
max = count;
index = i;
}
}
return girlName[index];
}
int main(){
string name;
Init();
while(getline(cin,name)){
cout<<MaxDupicate(name)<<endl;
}
return 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>
分享到:
相关推荐
华为机试真题(非牛客网试练题)OD考试真题,不定期更新,文档含代码解答
华为机试一霸教你过华为机试演讲稿..pdf
华为OD机试(..75.rar
华为机试-姓名的夫妻相.java
收集整理华为机试108题,目录清晰,内涵C、C++答案 适合初中级练手学习,短时突击
华为OD系列--华为OD机试
。。。
。。。
华为机试一霸教你过华为机试.doc
华为机试一霸教你过华为机试。大菊厂招聘有三关,心理测试,机试,面试。
华为OD机试真题整理合集
(43条消息) 华为OD机试真题2023(JAVA&JS)_华为机试真题_若博豆的博客-CSDN博客.mhtml
华为 OD 机试真题 机试题专栏 题目来自牛客平台机考同学的机试分享,题目描述信息可能记录不完整,题解无法保证通过率,只提供结题思路,注意!注意!!不要直接使用博主代码进行机考! 欢迎加微信: Ayemmar 本文...
华为机试(Python)真题Od.docx
华为机试算法题总结 经验分享
华为OD机试真题是华为公司用于筛选人才的一种方式,通过这种方式,华为公司可以更好地了解应聘者的技能和能力,从而更好地选择合适的人才。在华为OD机试真题中,应聘者需要解决一系列的问题,包括算法、数据结构、...
本人在准备2014年华为机试的时候,进行整理的,代码全部运行成功。如有错误,请大家见谅。
贰壹贰叁零华为OD机试.pptx 华为OD机试.pptx 华为OD机试.pptx
里面有几十道华为历届考过的机试题,可供大家研究和参考,主要是里面的思想,只要理解透了里面的思想,非常有助于机试。
华为机试.md