【华为机试题】名字漂亮度
题目描述
给出一个名字,该名字有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;
}
【华为机试题】名字漂亮度相关推荐
- 华为机试python编程题_牛客网华为机试题之Python解法
牛客网华为机试题之Python解法 第1题 字符串最后一个单词的长度 a = input().split(" ") print(len(a[-1])) 第2题 计算字符个数 a = ...
- 华为电脑c语言总是错误,关于华为机试题求代码!解决方法
关于华为机试题求代码!!! n个字符串,1 如n=3 1.what is local bus? 2.this is local bus. 3.local bus is name sdhfj. 那么最长 ...
- 牛客网华为机试题(JavaScript)
最近在牛客网刷华为机试题,遇到了很多坑,记录: 每一道题目都经过自己实践验证 华为机试题 牛客网在javascript V8引擎下处理输入输出如下: 利用了readline()接收输入的每一行,多行处 ...
- 【牛客网】华为机试题(00、C++版本)
华为机试题,本来以为对一些基础的程序还是有点信心的:不过不练不知道,一练吓一跳.平时虽然也都码程序,但是一到机试题就各种乱七八的不适应.还是要加强一下练习. 1.字符串最后一个单词的长度 题目描述:计 ...
- 【牛客网-华为机试题目录】持续更新中
文章目录 博主精品专栏导航 华为机试题:HJ80 整型数组合并(python) 华为机试题:HJ76 尼科彻斯定理(python) 华为机试题:HJ73 计算日期到天数转换(python) 华为机试题 ...
- 华为机试题库+题解【C语言版】
文章目录 前言 1.字符串最后一个单词的长度[***] 描述 输入描述 输出描述 示例 解题代码 2.计算某字符出现次数[****] 描述 输入描述 输出描述 示例 解题代码 3. 明明的随机数[** ...
- 【华为机试题分析-C/C++】知识点分类总结
专栏地址:https://blog.csdn.net/super828/category_10825347.html 字符串 [华为机试题分析] 1 字符串最后一个单词的长度 [华为机试题分析] 2 ...
- 【华为机试题分析】 4 字符串分割
我的首发平台是公众号[CodeAllen],学习交流QQ群:736386324,本文版权归作者所有,转载请注明出处 [华为机试题分析] 4 字符串分割 #include <stdio.h> ...
- 华为机试——名字的漂亮度
名字的漂亮度 给定一个名字,改名字有26个字符串组成,顶一个这个字符串的"漂亮度"是其所有字母"漂亮度"的总和. 每个字母都有一个"漂亮度" ...
最新文章
- linux分区知识,Linux硬盘分区知识
- SpringBoot整合 ActiveMQ、SpringBoot整合RabbitMQ、SpringBoot整合Kafka
- android主要文件的作用是什么,androidmanifest.xml文件的作用是什么
- opengl es纹理贴图效果实例
- Centos7 超简单将Centos的yum源更换为国内的阿里云源
- 免费有理—五款免费的网络管理工具介绍
- 【三维路径规划】基于matlab RRT_Star算法三维路径规划【含Matlab源码 1571期】
- 第二次作业-Steam软件分析
- 基于MATLAB的指纹识别算法仿真实现
- mil mm 单位换算
- Sonic 开源移动端云真机测试平台 - 用例编写与回放流程实例演示,任务定时执行、图像相似度定位、公共步骤、公共参数、测试套件等
- 如何把手变成手控_女生的手怎样变好看?
- CDP、私域运营及数字营销相关名词一览
- 20210319_23期_心跳检测_Task02_数据探索性分析
- Win10登录微软账户提示“发生了错误”
- 数据库-视图(View)详解
- 电子产品PCB电路板散热的方法
- Source Insight主题美化插件
- CSS 关键字 initial、inherit 和 unset
- 平台网络安全能力知多少