原題傳送門ios
這道題十分簡單,半小時切掉,就是代碼有點醜QAQ這麼菜的題用這麼長的代碼,不過——哼唧,我敲代碼快我任性哈哈。
不講思路了,太簡單了,我用了兩個輔助函數,其實應該有相應的庫函數能夠用,但我懶得查了,何況考場上我也查不了,便自食其力了QAQ函數
#include<iostream> #include<cstdio> #include<string> #include<vector> #include<algorithm> #include<cstdlib> #include<cmath> #include<stack> #include<map> using namespace std; string p[1005],b[1005]; int x; int cmp(string per,string book) { int lenp=per.length(); int lenb=book.length(); if(lenp>lenb)return 0; for(int cosb=lenb-lenp,cosp=0;cosb<lenb;cosb++,cosp++) { if(book[cosb]!=per[cosp]) { return 0; } } return 1; } int turn(string s) { int ans=0,len=s.length(); for(int i=len-1,w=1;i>=0;i--,w*=10) { ans+=(s[i]-'0')*w; } return ans; } int main() { int n,q; cin>>n>>q; for(int i=1;i<=n;i++) { cin>>b[i]; } for(int i=1;i<=q;i++) { cin>>x>>p[i]; } for(int i=1;i<=q;i++) { int min=99999999; for(int j=1;j<=n;j++) { if(cmp(p[i],b[j])&&turn(b[j])<min) { min=turn(b[j]); } } if(min==99999999) { cout<<-1<<endl; } else { cout<<min<<endl; } } return 0; }