#CS40211. 阅读程序2-字符处理-11
阅读程序2-字符处理-11
阅读程序
注意:切勿用电脑直接运行代码得出答案,请用大脑+笔+纸运行代码答题,否则是在浪费你的时间。
第2节:字符处理
第11题【NOIP】2018
#include <iostream>
using namespace std;
string s;
long long magic(int l, int r) {
long long ans = 0;
for (int i = l; i <= r; ++i) {
ans = ans * 4 + s[i] - ‘a’ + 1;
}
return ans;
}
int main() {
cin >> s;
int len = s.length();
int ans = 0;
15 for (int l1 = 0; l1 < len; ++l1) {
16 for (int r1 = l1; r1 < len; ++r1) {
bool bo = true;
18 for (int l2 = 0; l2 < len; ++l2) {
19 for (int r2 = l2; r2 < len; ++r2) {
if (magic(l1, r1) == magic(l2, r2)
&& (l1 != l2 || r1 != r2))
bo = false;
}
}
if (bo) {
ans += 1;
}
}
}
cout << ans << endl;
return 0;
}
●判断题
(1)输出一定不为0。
{{ select(11-1) }}
- 对
- 错
(2)将15、16行与18、19行对调,答案不变。
{{ select(11-2) }}
- 对
- 错
(3)输人字符串最多包含5种字符串,若更多则容易互相冲突。
{{ select(11-3) }}
- 对
- 错
(4)调用第12行需要iostream库头。
{{ select(11-4) }}
- 对
- 错
●选择题
(5)输人abacaba,则输出的结果是()。
{{ select(11-5) }}
- 16
- 17
- 18
- 19
(6)输人abcbbcc,则输出的结果是
{{ select(11-6) }}
- 16
- 20
- 18
- 19