solution.md 3.7 KB
Newer Older
每日一练社区's avatar
每日一练社区 已提交
1
# 单词分析
F
fix bug  
feilong 已提交
2

3
**问题描述**
F
fix bug  
feilong 已提交
4

每日一练社区's avatar
每日一练社区 已提交
5
小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组成,有些单词很长,远远超过正常英文单词的长度。小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个字母出现得最多来分辨单词。  
每日一练社区's avatar
每日一练社区 已提交
6

每日一练社区's avatar
每日一练社区 已提交
7
现在,请你帮助小蓝,给了一个单词后,帮助他找到出现最多的字母和这个字母出现的次数。
8 9

**输入格式**
F
fix bug  
feilong 已提交
10

每日一练社区's avatar
每日一练社区 已提交
11
输入一行包含一个单词,单词只由小写英文字母组成。
12 13

**输出格式**
F
fix bug  
feilong 已提交
14

每日一练社区's avatar
每日一练社区 已提交
15 16
输出两行,第一行包含一个英文字母,表示单词中出现得最多的字母是哪个。如果有多个字母出现的次数相等,输出字典序最小的那个。

每日一练社区's avatar
每日一练社区 已提交
17
第二行包含一个整数,表示出现得最多的那个字母在单词中出现的次数。
18 19

**样例输入**
F
fix bug  
feilong 已提交
20

每日一练社区's avatar
每日一练社区 已提交
21 22 23
```
lanqiao
```
每日一练社区's avatar
每日一练社区 已提交
24

25
**样例输出**
F
fix bug  
feilong 已提交
26

每日一练社区's avatar
每日一练社区 已提交
27 28 29
```
a 2
```
每日一练社区's avatar
每日一练社区 已提交
30

31
**样例输入**
F
fix bug  
feilong 已提交
32

每日一练社区's avatar
每日一练社区 已提交
33 34 35
```
longlonglongistoolong
```
每日一练社区's avatar
每日一练社区 已提交
36

37
**样例输出**
F
fix bug  
feilong 已提交
38

每日一练社区's avatar
每日一练社区 已提交
39 40 41
```
o 6
```
每日一练社区's avatar
每日一练社区 已提交
42

43
**评测用例规模与约定**
F
fix bug  
feilong 已提交
44

每日一练社区's avatar
每日一练社区 已提交
45 46 47
对于所有的评测用例,输入的单词长度不超过 1000。


每日一练社区's avatar
每日一练社区 已提交
48
以下选项<span style="color:red">错误</span>的是?
每日一练社区's avatar
每日一练社区 已提交
49

每日一练社区's avatar
每日一练社区 已提交
50
## aop
F
fix bug  
feilong 已提交
51

每日一练社区's avatar
每日一练社区 已提交
52
### before
F
fix bug  
feilong 已提交
53

每日一练社区's avatar
每日一练社区 已提交
54
```c
每日一练社区's avatar
每日一练社区 已提交
55 56
#include <bits/stdc++.h>
using namespace std;
每日一练社区's avatar
每日一练社区 已提交
57
```
每日一练社区's avatar
每日一练社区 已提交
58

每日一练社区's avatar
每日一练社区 已提交
59
### after
F
fix bug  
feilong 已提交
60

每日一练社区's avatar
每日一练社区 已提交
61
```c
每日一练社区's avatar
每日一练社区 已提交
62 63 64 65

```

## 答案
F
fix bug  
feilong 已提交
66

每日一练社区's avatar
每日一练社区 已提交
67
```c
每日一练社区's avatar
每日一练社区 已提交
68 69
int main()
{
每日一练社区's avatar
每日一练社区 已提交
70 71 72 73 74
    char a[1005];
    scanf("%s", a);
    int len;
    len = strlen(a);
    int b[26] = {0};
每日一练社区's avatar
每日一练社区 已提交
75 76
    for (int i = 0; i < len; i++)
    {
每日一练社区's avatar
每日一练社区 已提交
77 78 79 80 81 82
        b[a[i] + 'a']++;
    }
    int max1 = 0, j;
    for (int i = 0; i < 26; i++)
    {
        if (max1 < b[i])
每日一练社区's avatar
每日一练社区 已提交
83
        {
每日一练社区's avatar
每日一练社区 已提交
84 85
            max1 = b[i];
            j = i;
每日一练社区's avatar
每日一练社区 已提交
86
        }
每日一练社区's avatar
每日一练社区 已提交
87 88 89 90
    }

    cout << char('a' + j) << endl
         << max1;
每日一练社区's avatar
每日一练社区 已提交
91 92 93 94
}
```
## 选项

F
fix bug  
feilong 已提交
95

每日一练社区's avatar
每日一练社区 已提交
96
### A
F
fix bug  
feilong 已提交
97

每日一练社区's avatar
每日一练社区 已提交
98
```c
每日一练社区's avatar
每日一练社区 已提交
99 100 101 102
#define MAX 1010

int s[MAX];

每日一练社区's avatar
每日一练社区 已提交
103 104
int main()
{
每日一练社区's avatar
每日一练社区 已提交
105 106 107 108 109 110 111 112
    string str;
    cin >> str;
    int n = str.size();
    for (int i = 0; i < n; i++)
    {
        int a = str[i] - 'a';
        s[a]++;
    }
每日一练社区's avatar
每日一练社区 已提交
113
    int max = 0;
每日一练社区's avatar
每日一练社区 已提交
114 115
    char ch;
    for (int i = 0; i < MAX; i++)
每日一练社区's avatar
每日一练社区 已提交
116
    {
每日一练社区's avatar
每日一练社区 已提交
117
        if (max <= s[i])
每日一练社区's avatar
每日一练社区 已提交
118
        {
每日一练社区's avatar
每日一练社区 已提交
119
            if (max < s[i])
每日一练社区's avatar
每日一练社区 已提交
120
            {
每日一练社区's avatar
每日一练社区 已提交
121 122 123 124 125 126 127
                max = s[i];
                ch = (char)(i + 'a');
            }
            else if (max == s[i])
            {
                max = s[i];
                ch = ch;
每日一练社区's avatar
每日一练社区 已提交
128 129
            }
        }
每日一练社区's avatar
每日一练社区 已提交
130 131 132 133 134 135
    }

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

    return 0;
每日一练社区's avatar
每日一练社区 已提交
136 137 138 139
}
```

### B
F
fix bug  
feilong 已提交
140

每日一练社区's avatar
每日一练社区 已提交
141
```c
每日一练社区's avatar
每日一练社区 已提交
142 143 144 145 146 147
char m[1005];
int n[1005];
char c;
bool b[1005];
string str;

每日一练社区's avatar
每日一练社区 已提交
148 149 150
int main()
{
    int max = 0;
每日一练社区's avatar
每日一练社区 已提交
151 152 153 154
    cin >> str;
    memset(b, false, sizeof(b));

    for (int i = 0; i < str.size(); i++)
每日一练社区's avatar
每日一练社区 已提交
155
    {
每日一练社区's avatar
每日一练社区 已提交
156
        while (b[i])
每日一练社区's avatar
每日一练社区 已提交
157
        {
每日一练社区's avatar
每日一练社区 已提交
158 159 160 161 162 163 164 165
            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])
每日一练社区's avatar
每日一练社区 已提交
166
            {
每日一练社区's avatar
每日一练社区 已提交
167 168
                n[i]++;
                b[j] = true;
每日一练社区's avatar
每日一练社区 已提交
169 170
            }
        }
每日一练社区's avatar
每日一练社区 已提交
171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195
        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;
每日一练社区's avatar
每日一练社区 已提交
196 197 198 199
}
```

### C
F
fix bug  
feilong 已提交
200

每日一练社区's avatar
每日一练社区 已提交
201
```c
每日一练社区's avatar
每日一练社区 已提交
202 203 204 205 206 207
int main()
{
    int a[128] = {0};
    char s[1000];
    scanf("%s", s);
    int len = strlen(s);
每日一练社区's avatar
每日一练社区 已提交
208

每日一练社区's avatar
每日一练社区 已提交
209 210
    int max = 0;
    char t = 0;
每日一练社区's avatar
每日一练社区 已提交
211

每日一练社区's avatar
每日一练社区 已提交
212 213 214 215
    for (int i = 0; i < len; i++)
    {
        a[s[i]]++;
        if (max < a[s[i]])
每日一练社区's avatar
每日一练社区 已提交
216
        {
每日一练社区's avatar
每日一练社区 已提交
217
            max = a[s[i]];
每日一练社区's avatar
每日一练社区 已提交
218 219
            t = s[i];
        }
每日一练社区's avatar
每日一练社区 已提交
220 221 222 223 224 225 226
        else if (max == a[s[i]])
        {
            if (t > s[i])
            {
                t = s[i];
            }
        }
每日一练社区's avatar
每日一练社区 已提交
227
    }
每日一练社区's avatar
每日一练社区 已提交
228 229 230
    printf("%c\n%d", t, max);
}
```