# 单词分析

**问题描述**

小蓝正在学习一门神奇的语言，这门语言中的单词都是由小写英文字母组成，有些单词很长，远远超过正常英文单词的长度。小蓝学了很长时间也记不住一些单词，他准备不再完全记忆这些单词，而是根据单词中哪个字母出现得最多来分辨单词。  
现在，请你帮助小蓝，给了一个单词后，帮助他找到出现最多的字母和这个字母出现的次数。

**输入格式**

输入一行包含一个单词，单词只由小写英文字母组成。

**输出格式**

输出两行，第一行包含一个英文字母，表示单词中出现得最多的字母是哪
个。如果有多个字母出现的次数相等，输出字典序最小的那个。
第二行包含一个整数，表示出现得最多的那个字母在单词中出现的次数。

**样例输入**

```
lanqiao
```
**样例输出**

```
a 2
```
**样例输入**

```
longlonglongistoolong
```
**样例输出**

```
o 6
```
**评测用例规模与约定**

对于所有的评测用例，输入的单词长度不超过 1000。


以下选项<font color="red">错误</font>的是？

## aop

### before

```cpp
#include <bits/stdc++.h>
using namespace std;
```
### after

```cpp

```

## 答案

```cpp
int main()
{
    char a[1005];
    scanf("%s", a);
    int len;
    len = strlen(a);
    int b[26] = {0};
    for (int i = 0; i < len; i++)
    {
        b[a[i] + 'a']++;
    }
    int max1 = 0, j;
    for (int i = 0; i < 26; i++)
    {
        if (max1 < b[i])
        {
            max1 = b[i];
            j = i;
        }
    }

    cout << char('a' + j) << endl
         << max1;
}
```
## 选项


### A

```cpp
#define MAX 1010

int s[MAX];

int main()
{
    string str;
    cin >> str;
    int n = str.size();
    for (int i = 0; i < n; i++)
    {
        int a = str[i] - 'a';
        s[a]++;
    }
    int max = 0;
    char ch;
    for (int i = 0; i < MAX; i++)
    {
        if (max <= s[i])
        {
            if (max < s[i])
            {
                max = s[i];
                ch = (char)(i + 'a');
            }
            else if (max == s[i])
            {
                max = s[i];
                ch = ch;
            }
        }
    }

    cout << ch << endl;
    cout << max << endl;

    return 0;
}
```

### B

```cpp
char m[1005];
int n[1005];
char c;
bool b[1005];
string str;

int main()
{
    int max = 0;
    cin >> str;
    memset(b, false, sizeof(b));

    for (int i = 0; i < str.size(); i++)
    {
        while (b[i])
        {
            i++;
        }
        m[i] = str[i];
        b[i] = true;
        n[i] = 1;
        for (int j = i + 1; j < str.size(); j++)
        {
            if (m[i] == str[j])
            {
                n[i]++;
                b[j] = true;
            }
        }
        if (max <= n[i])
        {
            if (max == n[i])
            {
                if ((c - 'a') <= (m[i] - 'a'))
                {
                    c = c;
                }
                else
                {
                    c = m[i];
                }
            }
            else
            {
                max = n[i];
                c = m[i];
            }
        }
    }

    cout << c << endl;
    cout << max << endl;

    return 0;
}
```

### C

```cpp
int main()
{
    int a[128] = {0};
    char s[1000];
    scanf("%s", s);
    int len = strlen(s);

    int max = 0;
    char t = 0;

    for (int i = 0; i < len; i++)
    {
        a[s[i]]++;
        if (max < a[s[i]])
        {
            max = a[s[i]];
            t = s[i];
        }
        else if (max == a[s[i]])
        {
            if (t > s[i])
            {
                t = s[i];
            }
        }
    }
    printf("%c\n%d", t, max);
}
```
