(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)。( T )
f函数的返回值等于两个输入字符串的最长公共子串的长度。( F )
当输入两个完全相同的字符串时,g函数的返回值总是true( T )
【单选题】
.
当输入为“csp-j p-jcs”时,输出为( B )
A."0"
B. "1"
C. "T"
D. "F"
当输入为“csppsc spsccp”时,输出为:( D )
A."T"
B. "F"
C. "0"
D. "1"