题目描述
no
样例
no
算法1
(模拟) $O(n^2)$
这道题我有点想复杂了,我用字符串匹配,然后循环寻找最小值,有点麻烦
时间复杂度分析:no
C++ 代码
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<fstream>
#include<cmath>
#include<string>
#include<cstring>
#include<climits>
#include<cfloat>
#include<sstream>
using namespace std;
bool pd(char a[],char b[]){
int q=strlen(b)-1;
for(int i=strlen(a)-1;i>=0;i--){
if(strlen(b)<strlen(a)){
// cout<<"zd"<<0<<endl;
return 0;
}else{
if(b[q]!=a[i]){
// cout<<0<<endl;
return 0;
}
}
q--;
}
// cout<<"ok1"<<endl;
return 1;
}
int main(){
char a[1200][10],b[1200][10];
int n,q,lenb[1200],lena[1200];
cin>>n>>q;
for(int i=0;i<n;i++){
cin>>a[i];
lena[i]=strlen(a[i]);
}
for(int i=0;i<q;i++){
cin>>lenb[i]>>b[i];
}
for(int i=0;i<q;i++){
int min=INT_MAX,flag=1;
for(int j=0;j<n;j++){
if(pd(b[i],a[j])){
string hq=a[j];
stringstream ss;
ss<<hq;
int as;
ss>>as;
// cout<<"b1:"<<as<<endl;
ss.clear();
if(as<min){
min=as;
}
flag=0;
}else{
}
}
if(flag==0){
cout<<min<<endl;
}else{
cout<<-1<<endl;
}
}
return 0;
}
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度分析:blablabla
C++ 代码
blablabla