#12158. 珅泽教育CSP-J第一轮模拟考第二十二套 第 17 题
珅泽教育CSP-J第一轮模拟考第二十二套 第 17 题
二、阅读程序(程序输入不超过数组或字符串定义的范围;除特殊说明外,判断题 2 分,选择题 3 分,共计 40 分)
程序(1)
#include <iostream>
#include <cstring>
using namespace std;
string s, t;
string a, b;
int main() {
getline(cin, s);
getline(cin, a);
getline(cin, b);
for (int i = 0; i < s.size(); i++) {
bool flag = true;
if (i + a.size() <= s.size()) {
for (int j = 0; j < a.size(); j++) {
char p = s[i + j], q = a[j];
if ('a' <= p && p <= 'z') p = p - 'a' + 'A';
if ('a' <= q && q <= 'z') q = q - 'a' + 'A';
if (p != q)
flag = false;
}
} else
flag = false;
if (flag == true) {
t += b;
i += a.size() - 1;
} else
t += s[i];
}
cout << t << endl;
return 0;
}
保证输入的三行字符串长度均不超过 ,且每个字符串均由 ASCII 可见字符或空格组成且非空。
- 每次调用
s.size()的复杂度是 ,但若把s.size()替换成s.length(),调用的复杂度将会变成 ,其中 是s当前的长度。这是因为s.length()作为strlen()函数的string版本,会每次重新计算s最后一个元素的位置。( )
{{ select(1) }}
- 正确
- 错误