【题解提供者】吴立强
解法
思路
若存在一个已选项不属于正确答案则得分只能为 0,否则修改后得分必定为 10。
所以判断上述条件是否成立即可。
代码展示
#include <iostream>
using namespace std;
void solved() {
string s, f; cin >> s >> f; /// string 为 C++ 提供的字符串容器
bool ans = true; /// 全部字符都需要满足,故初始时假设都满足
for(char x: s) { /// 以变量 c 遍历容器 s
bool ck = false; /// 必须存在相同字符,故初始时假设不存在
for(char y: f) if(x == y) ck = true; /// 存在相同字符
if(!ck) ans = false; /// 存在不满足
}
if(ans) cout << 10 << endl;
else cout << 0 << endl;
}
int main() {
int ttx; cin >> ttx; while(ttx --) /// 多组案例
solved();
return 0;
}
算法分析
程序时间复杂度为 O ( T ) O(T) O(T)。
拓展
本题十分简单,但是提到了两种常用判断(存在符合和全部符合)方法。