找出字符数组中出现次数最多的字符
2017-11-19 10:41
465 查看
一道面试题,当时状态不太好,今天重新实现一下。
1、暂不考虑最多出现的字符有多个的情况
2、用map实现
#include <iostream>
#include <map>
using namespace std;
int main()
{
char a[] = "abccddbbbllk";
map<char, unsigned int> m;
map<char, unsigned int>::iterator iter = m.begin();
unsigned int len = sizeof(a)/sizeof(a[0]);
for (unsigned int i = 0; i < len; ++i)
{
if (m.find(a[i]) == m.end())
{
m.insert(make_pair(a[i], 1));
}
else
{
m[a[i]]++;
}
}
char c;
unsigned int max = 0;
for (iter = m.begin(); iter != m.end(); ++iter)
{
if (iter->second > max)
{
c = iter->first;
max = iter->second;
}
}
cout << c << endl;
return 0;
}
zhaojunyandeMacBook-Pro:~ zhaojunyan$ vim map.cpp
zhaojunyandeMacBook-Pro:~ zhaojunyan$ g++ -o map map.cpp
zhaojunyandeMacBook-Pro:~ zhaojunyan$ ./map
b
zhaojunyandeMacBook-Pro:~ zhaojunyan$ cat map.cpp
#include <iostream>
#include <map>
using namespace std;
int main()
{
char a[] = "abccddbbbllk";
map<char, unsigned int> m;
map<char, unsigned int>::iterator iter = m.begin();
unsigned int len = sizeof(a)/sizeof(a[0]);
for (unsigned int i = 0; i < len; ++i)
{
if (m.find(a[i]) == m.end())
{
m.insert(make_pair(a[i], 1));
}
else
{
m[a[i]]++;
}
}
char c;
unsigned int max = 0;
for (iter = m.begin(); iter != m.end(); ++iter)
{
if (iter->second > max)
{
c = iter->first;
max = iter->second;
}
}
cout << c << endl;
return 0;
}
zhaojunyandeMacBook-Pro:~ zhaojunyan$
1、暂不考虑最多出现的字符有多个的情况
2、用map实现
#include <iostream>
#include <map>
using namespace std;
int main()
{
char a[] = "abccddbbbllk";
map<char, unsigned int> m;
map<char, unsigned int>::iterator iter = m.begin();
unsigned int len = sizeof(a)/sizeof(a[0]);
for (unsigned int i = 0; i < len; ++i)
{
if (m.find(a[i]) == m.end())
{
m.insert(make_pair(a[i], 1));
}
else
{
m[a[i]]++;
}
}
char c;
unsigned int max = 0;
for (iter = m.begin(); iter != m.end(); ++iter)
{
if (iter->second > max)
{
c = iter->first;
max = iter->second;
}
}
cout << c << endl;
return 0;
}
zhaojunyandeMacBook-Pro:~ zhaojunyan$ vim map.cpp
zhaojunyandeMacBook-Pro:~ zhaojunyan$ g++ -o map map.cpp
zhaojunyandeMacBook-Pro:~ zhaojunyan$ ./map
b
zhaojunyandeMacBook-Pro:~ zhaojunyan$ cat map.cpp
#include <iostream>
#include <map>
using namespace std;
int main()
{
char a[] = "abccddbbbllk";
map<char, unsigned int> m;
map<char, unsigned int>::iterator iter = m.begin();
unsigned int len = sizeof(a)/sizeof(a[0]);
for (unsigned int i = 0; i < len; ++i)
{
if (m.find(a[i]) == m.end())
{
m.insert(make_pair(a[i], 1));
}
else
{
m[a[i]]++;
}
}
char c;
unsigned int max = 0;
for (iter = m.begin(); iter != m.end(); ++iter)
{
if (iter->second > max)
{
c = iter->first;
max = iter->second;
}
}
cout << c << endl;
return 0;
}
zhaojunyandeMacBook-Pro:~ zhaojunyan$
相关文章推荐
- 程序员面试指南(第六章) 数组和字符串(C#版) 1. 找出字符串中出现次数最多的字符及出现次数
- 1、在一个由自然数1-1000中某些数字所组成的数组中,每个数字可能出现零次或者多次。设计一个算法,找出出现次数最多的数字。
- 找出数组里面元素出现次数最多的问题
- 找出数组中出现次数最多的数
- Js实现找出字符串中出现次数最多的字符
- 找出字符串中出现次数最多的字符,和最大次数
- 找出数组中出现次数最多的那个数
- 一个简单的算法---实现找出数组中一个数字出现次数最多的数字
- 找出数组中出现次数最多的前k个元素[leetcode题]
- js实现找出字符串中出现字数最多的字符并计算其出现次数
- 找出给定字符串中出现最多的字符和次数
- [java] 找出字符串中出现最多的字符和出现的次数
- Java-实现找出数组中一个数字出现次数最多的数字
- java找出一个数组中出现次数最多且最大的那个元素
- 找出数组中出现次数最多的数字
- 找出数组中出现次数最多的数
- 一个简单的实现找出数组中一个数字出现次数最多的数字的算法
- 瑞恩面试编程题:找出数组中出现次数最多且最大的那个数及出现的次数
- 数组去重;字符串按千位分割;找出出现最多的字符
- 找出数组中出现次数最多的数字