给定一个字符串str, 任务是使用unordered_mapinC++++ STL.
例子:
输入:str ="geeksforgeeks"【在C++中使用unordered_map表示字符串中每个字符的频率】方法:
输出:
r 1
e 4
s 2
g 2
k 2
f 1
o 1
输入:str ="programming"
输出:
n 1
i 1
p 1
o 1
r 2
a 1
g 2
m 2
- 遍历给定字符串的每个字符str.
- 检查当前字符是否存在于unordered_map或不。
- 如果存在, 则更新当前字符的频率, 否则插入频率为1的字符, 如下所示:
if(M.find(s[i])==M.end()) {
M.insert(make_pair{s[i], 1});
}
else {
M展开]++;
}
4.遍历unordered_map并打印每个字符的频率作为映射值。
下面是上述方法的实现:
CPP
//C++ program for the above approach
#include <
bits/stdc++.h>
using namespace std;
void printFrequency(string str)
{
//Define an unordered_map
unordered_map<
char , int>
M;
//Traverse string str check if
//current character is present
//or not
for ( int i = 0;
str[i];
i++)
{
//If the current characters
//is not found then insert
//current characters with
//frequency 1
if (M.find(str[i]) == M.end())
{
M.insert(make_pair(str[i], 1));
}
//Else update the frequency
else
{
M[str[i]]++;
}
}
//Traverse the map to print the
//frequency
for ( auto &
it : M) {
cout <
<
it.first <
<
' ' <
<
it.second <
<
'\n' ;
}
}
//Driver Code
int main()
{
string str = "lsbin" ;
//Function call
printFrequency(str);
return 0;
}
输出如下
r 1
e 4
s 2
g 2
k 2
f 1
o 1
被认为是行业中最受欢迎的技能之一, 我们拥有自己的编码基础C++ STL通过激烈的问题解决过程来训练和掌握这些概念。
推荐阅读
- 有关虚拟函数和抽象类的C++面试问题
- Oracle面试经验|S28(应用开发工程师)
- 为什么要在PHP中同时检查isset()和!empty()函数()
- 算法设计(数组中最少的元素)
- 快速排序与合并排序有什么区别()
- 算法设计(数组中滑动窗口的中位数|S2)
- 免费win7旗舰版安装图文详细教程
- 电脑公司Win8纯净系统64位下载
- windows7 32位系统重装图文详细教程