题目描述
给出一个名字,该名字有26个字符串组成,定义这个字符串的“漂亮度”是其所有字母“漂亮度”的总和。
每个字母都有一个“漂亮度”,范围在1到26之间。没有任何两个字母拥有相同的“漂亮度”。字母忽略大小写。
给出多个名字,计算每个名字最大可能的“漂亮度”。
输入描述:
整数N,后续N个名字

输出描述:
每个名称可能的最大漂亮程度

示例1
输入
2
zhangsan
lisi
输出
192
101


思路:我们可以用一个数组来统计各个字母的出现次数,并且可以巧妙利用倒序来进行乘法运算

#include <bits/stdc++.h>
using namespace std;
int main()
{int n;string str;while(cin>>n){while(n--){cin>>str;int sum=0;int flag[26]={0};for(int i=0;i<str.size();i++){if(str[i]<'a')flag[str[i]-'A']++;elseflag[str[i]-'a']++;}sort(flag,flag+26);for(int i=25;i>=0;i--){sum+=flag[i]*(i+1);}cout<<sum<<endl;}}return 0;
}

还有一种方法是利用map容器,对map进行数据插入,如果检测到已有,则将对应的value值+1,
因为map容器是非线性的,sort函数不能对非线性的容器进行排序,因此我们可以将map容器放入vector中,间接利用vector来排序。

#include <bits/stdc++.h>
using namespace std;
bool cmp(pair<char,int> a,pair<char,int> b)
{return a.second > b.second;
}
int main()
{int n;string str;while(cin>>n){while(n--){cin>>str;map<char,int>mp;int cnt=0,m=26;for(int i=0;i<str.size();i++){str[i]=toupper(str[i]);}for(int i=0;i<str.size();i++){if(mp.count(str[i])==0)mp.insert(make_pair(str[i],1));elsemp[str[i]]++;}vector<pair<char,int>> nv(mp.begin(),mp.end());sort(nv.begin(),nv.end(),cmp);for(int i=0;i<nv.size();i++){cnt+=(nv[i].second*m);m--;}cout<<cnt<<endl;}}return 0;
}

【华为机试题】名字漂亮度相关推荐

  1. 华为机试python编程题_牛客网华为机试题之Python解法

    牛客网华为机试题之Python解法 第1题 字符串最后一个单词的长度 a = input().split(" ") print(len(a[-1])) 第2题 计算字符个数 a = ...

  2. 华为电脑c语言总是错误,关于华为机试题求代码!解决方法

    关于华为机试题求代码!!! n个字符串,1 如n=3 1.what is local bus? 2.this is local bus. 3.local bus is name sdhfj. 那么最长 ...

  3. 牛客网华为机试题(JavaScript)

    最近在牛客网刷华为机试题,遇到了很多坑,记录: 每一道题目都经过自己实践验证 华为机试题 牛客网在javascript V8引擎下处理输入输出如下: 利用了readline()接收输入的每一行,多行处 ...

  4. 【牛客网】华为机试题(00、C++版本)

    华为机试题,本来以为对一些基础的程序还是有点信心的:不过不练不知道,一练吓一跳.平时虽然也都码程序,但是一到机试题就各种乱七八的不适应.还是要加强一下练习. 1.字符串最后一个单词的长度 题目描述:计 ...

  5. 【牛客网-华为机试题目录】持续更新中

    文章目录 博主精品专栏导航 华为机试题:HJ80 整型数组合并(python) 华为机试题:HJ76 尼科彻斯定理(python) 华为机试题:HJ73 计算日期到天数转换(python) 华为机试题 ...

  6. 华为机试题库+题解【C语言版】

    文章目录 前言 1.字符串最后一个单词的长度[***] 描述 输入描述 输出描述 示例 解题代码 2.计算某字符出现次数[****] 描述 输入描述 输出描述 示例 解题代码 3. 明明的随机数[** ...

  7. 【华为机试题分析-C/C++】知识点分类总结

    专栏地址:https://blog.csdn.net/super828/category_10825347.html 字符串 [华为机试题分析] 1 字符串最后一个单词的长度 [华为机试题分析] 2 ...

  8. 【华为机试题分析】 4 字符串分割

    我的首发平台是公众号[CodeAllen],学习交流QQ群:736386324,本文版权归作者所有,转载请注明出处 [华为机试题分析] 4 字符串分割 #include <stdio.h> ...

  9. 华为机试——名字的漂亮度

    名字的漂亮度 给定一个名字,改名字有26个字符串组成,顶一个这个字符串的"漂亮度"是其所有字母"漂亮度"的总和. 每个字母都有一个"漂亮度" ...

最新文章

  1. linux分区知识,Linux硬盘分区知识
  2. SpringBoot整合 ActiveMQ、SpringBoot整合RabbitMQ、SpringBoot整合Kafka
  3. android主要文件的作用是什么,androidmanifest.xml文件的作用是什么
  4. opengl es纹理贴图效果实例
  5. Centos7 超简单将Centos的yum源更换为国内的阿里云源
  6. 免费有理—五款免费的网络管理工具介绍
  7. 【三维路径规划】基于matlab RRT_Star算法三维路径规划【含Matlab源码 1571期】
  8. 第二次作业-Steam软件分析
  9. 基于MATLAB的指纹识别算法仿真实现
  10. mil mm 单位换算
  11. Sonic 开源移动端云真机测试平台 - 用例编写与回放流程实例演示,任务定时执行、图像相似度定位、公共步骤、公共参数、测试套件等
  12. 如何把手变成手控_女生的手怎样变好看?
  13. CDP、私域运营及数字营销相关名词一览
  14. 20210319_23期_心跳检测_Task02_数据探索性分析
  15. Win10登录微软账户提示“发生了错误”
  16. 数据库-视图(View)详解
  17. 电子产品PCB电路板散热的方法
  18. Source Insight主题美化插件
  19. CSS 关键字 initial、inherit 和 unset
  20. 平台网络安全能力知多少

热门文章

  1. vmware如何设置中文
  2. Linux解压编译Tfa/bootloader
  3. QEMU:Checking for hardware virtualization FAIL (Only emulated CPUs are available) Intel-VT
  4. win7 QQ 自动隐藏和显示
  5. 3月初中国域名商域名解析量26强:新网跌破百万
  6. Android 查看隐私权限方法调用者集合
  7. ArcGIS创建地理处理包!让你制作的工具自由分享
  8. 注册商为阿里云的域名解析到腾讯云
  9. RabbitMQ的工作流程
  10. JavaScript 异常处理及异常收集