2023 年第 23 题判断题动态规划提高
程序(二):相同字符串时 g 是否总返回 true
题目
阅读下面的程序,回答问题。 #include<iostream> #include<vector> #include<algorithm> using namespace std; int f(string x,string y){ int m=x.size(); int n=y.size(); vector<vector<int>>v(m+1,vector<int>(n+1,0)); for(int i=1;i<=m;i++){ for(int j=1;j<=n;j++){ if(x[i-1]==y[j-1]){ v[i][j]=v[i-1][j-1]+1; }else{ v[i][j]=max(v[i-1][j],v[i][j-1]); } } } return v[m][n]; } bool g(string x,string y){ if(x.size() != y.size()){ return false; } return f(x+x,y)==y.size(); } int main(){ string x,y; cin>>x>>y; cout<<g(x,y)<<endl; return 0; } 判断题:当输入两个完全相同的字符串时,g 函数的返回值总是 true。( 填 √ 或 × )
考点拆解
程序阅读与结果判断
易错提醒
阅读程序题要按变量变化顺序手推,不要跳步
选择题要检查单位、边界和题目中的否定词