【华为机考模拟题】Words、Vowel、计算字符串重新排列数

server/2024/9/23 11:21:08/

目录

一、Words

二、Vowel

三、计算字符串重新排列数


一、Words

每个句子由多个单词组成,句子中的每个单词的长度都可能不一样,假设每个单词的长度 Ni 为该单词的重量,你需要做的就是给出整个句子的平均重量 V

输入: Who Love Solo
输出 :3.67

统计单词数ans和字母数count,答案就是ans/count

int main() {string words;getline(cin, words);float ans = 0, count = 1;for (auto &c: words) {if (c == ' ')++count;else++ans;}cout.precision(2);cout << fixed << ans / count;return 0;
}

二、Vowel

solo 从小就对英文字母非常感兴趣,尤其是元音字母(a,e,i,o,u,A,E,I,O,U),他在写日记的时候都会把元音字母写成大写的,辅音字母则都写成小写,虽然别人看起来很别扭,但是 solo 却非常熟练。你试试把一个句子翻译成 solo 写日记的习惯吧。

输入: Who Love Solo
输出 :whO lOvE sOlO

是元音字母的变成大写,其他的变成小写

int main() {string solo = "aeiouAEIOU";string words;getline(cin, words);for (auto &c: words) {if (solo.find(c) != string::npos)c = toupper(c);elsec = tolower(c);}cout << words;return 0;
}

三、计算字符串重新排列数

给定一个只包含大写英文字母的字符串 S,要求给出对 S 重新排列的所有不相同的排列数。
如:S 为 ABA,则不同的排列有 ABA、AAB、BAA 三种。

输入: “ABA”
输出: 3

输入: “AABBCC”
输出: 90

回顾高中数学排列组合的知识,假设没有相同的字符,如ABCD,那么排列数就是全排列A44,即!4,如果有相同字符,那么我们实际上是多乘了一个排列数,这个排列数的存在是因为我们把相同的字符当成不同的字符来排列,因此我们再计算一次这个排序数,即相同字符的排序数,当成不同字符来计算,然后除去这个数

#include<iostream>
#include<map>
using namespace std;int fact(int n) {int result = 1;for (int i = 2; i <= n; ++i)result *= i;return result;
}int main() {string words;getline(cin, words);map<char, int> count;for (auto c: words) {++count[c];}int ans = 1;for (auto &&it = count.begin(); it != count.end(); ++it) {ans *= fact(it->second);}cout << fact(words.size()) / ans;return 0;
}

http://www.ppmy.cn/server/36892.html

相关文章

流畅的python-学习笔记_协议+继承优缺点

接口和协议 python动态语言&#xff0c;没有interface等概念&#xff0c;接口和协议方法有的也有替代品&#xff0c;所以类似于鸭子类型&#xff0c;只关注行为像鸭子&#xff0c;不关注它是不是鸭子。不是每个接口都得实现&#xff0c;这是允许的 猴子补丁 可动态给对象添加…

淘宝商品评论数据获取:从API调用到应用实践

在电商的世界里&#xff0c;用户评论是洞察商品质量的一扇窗。淘宝&#xff0c;作为中国最大的在线购物平台&#xff0c;其海量的商品评论数据尤为宝贵。本文将带您走进淘宝商品评论数据的获取之旅&#xff0c;从API调用的基础知识到实际应用的代码示例&#xff0c;一探究竟。 …

嵌入式5-7

练习&#xff1a;优化登录框&#xff0c;输入完用户名和密码后&#xff0c;点击登录&#xff0c;判断账户是否为 Admin 密码 为123456&#xff0c;如果判断成功&#xff0c;则输出登录成功&#xff0c;并关闭整个登录界面&#xff0c;如果登录失败&#xff0c;则提示登录失败&a…

把项目打包成Maven Archetype(多模块项目脚手架)

1、示例项目 2、在pom.xml中添加archetype插件 <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-archetype-plugin</artifactId><version>3.2.0</version> </plugin>3、打包排除某些目录 当我们使用…

超详细——集成学习——Adaboost实现多分类——附代码

资料参考 1.【集成学习】boosting与bagging_哔哩哔哩_bilibili 集成学习——boosting与bagging 强学习器&#xff1a;效果好&#xff0c;模型复杂 弱学习器&#xff1a;效果不是很好&#xff0c;模型简单 优点 集成学习通过将多个学习器进行结合&#xff0c;常可获得比单一…

算法人生(14):从“探索平衡策略”看“生活工作的平衡之道”

在强化学习中&#xff0c;有一种策略叫“探索平衡策略Exploration-Exploitation Trade-off&#xff09;”&#xff0c;这种策略的核心是在探索未知领域&#xff08;以获取更多信息&#xff09;和利用已知信息&#xff08;来最大化即时回报&#xff09;之间寻求平衡&#xff0c;…

yolov8训练自己的数据集

截至我的知识更新日期&#xff08;2023年&#xff09;&#xff0c;YOLOv8 并不是一个已经公开发布的模型。YOLO&#xff08;You Only Look Once&#xff09;系列中最新的稳定版本是 YOLOv7&#xff0c;由 Ultralytics 团队开发。如果在此之后 Ultralytics 或其他团队发布了 YOL…

太阳能光伏在生活中的三大作用

随着现在太阳能光伏的逐步发展&#xff0c;太阳能光伏已经越来越走近人们的生活&#xff0c;小编带大家盘点一下光伏在生活中的应用 一、发电 光伏的最初应用就是用来发电&#xff0c;以替代传统的化石燃料发电方式。光伏发电可以从根本上解决当今社会面临的能源短缺问题&…