2023年信奥赛CSP-J1普及组初赛阅读程序2:
01 #include<iostream> 02 #include<vector> 03 #include<algorithm> 04 using namespace std; 05 06 int f(string x,string y){ 07 int m=x.size(); 08 int n=y.size(); 09 vector<vector<int>>v(m+1,vector<int>(n+1,0)); 10 for(int i=1;i<=m;i++){ 11 for(int j=1;j<=n;j++){ 12 if(x[i-1]==y[j-1]){ 13 v[i][j]=v[i-1][j-1]+1; 14 }else{ 15 v[i][j]=max(v[i-1][j],v[i][j-1]); 16 } 17 } 18 } 19 return v[m][n]; 20 } 21 22 bool g(string x,string y){ 23 if(x.size() != y.size()){ 24 return false; 25 } 26 return f(x+x,y)==y.size(); 27 } 28 29 int main(){ 30 string x,y; 31 cin>>x>>y; 32 cout<<g(x,y)<<endl; 33 return 0; 34 }
f函数的返回值小于等于min(n,m)。( )
f函数的返回值等于两个输入字符串的最长公共子串的长度。( )
当输入两个完全相同的字符串时,g函数的返回值总是true( )
将第19行中的“v[m][n]”替换为“v[n][m]”,那么该程序( )
行为不变
只会改变输出
一定非正常退出
可能非正常退出
当输入为“csp-j p-jcs”时,输出为:( )
"0"
"1"
"T"
"F"
当输入为“csppsc spsccp”时,输出为:( )
"T"
"F"
"0"
"1"