URL 已经复制到剪切板

查看 gist

查看一个gist的详细信息

简介

名称

2b275e62-05aa-4e97-be63-b4ee15aa3f98

创建者

916106840714

创建时间

2018-02-10 11:28

最后修改

2018-02-10 11:28

代码
#include<iostream> #include<string> using namespace std; int n; bool flag=1; //char pos[1000];//对题目的妥协。。。 int getmidlocation(string mid,int m,int ms,int md){ for(int i=ms;i<=md;i++){ if(mid[i]==m){ return i; } }return -1; } void setpos(string mid,int ms,int md,string pre,int ps,int pd,char pos[]){ int hm=0,cl=0,cr=0; pos[--n]=pre[ps]; hm=getmidlocation(mid,pre[ps],ms,md); if(hm==-1){ flag=0; cout<<n<<endl; return; } cr=md-hm; cl=hm-ms; if(cr>0) setpos(mid,hm+1,md,pre,ps+cl+1,pd,pos); if(cl>0) setpos(mid,ms,hm-1,pre,ps+1,ps+cl,pos); return ; } int main(){ string pre,mid; int lenpre,lenmid; cin>>pre; cin>>mid; lenpre=pre.length(); lenmid=mid.length(); if(lenpre!=lenmid){ cout<<"-1"; return 0; }int lenpos=lenpre; n=lenpre; char pos[lenpos]; setpos(mid,0,lenmid-1,pre,0,lenpre-1,pos); if(flag==0){ cout<<"-1"; return 0; }for(int i=0;i<lenpre;i++){ cout<<pos[i]; } }
分享