B. Obtaining the String(模拟)
比较水的模拟
思路:就是模拟题意
注意:把数组开大点,开始wa了几次就是这个原因
#include<iostream> #include<string> #include<cstdio> using namespace std; string a, b; int aa[100000], t, n; bool flag1; int main(){ cin>>n; cin>>a>>b; int p=0, q=0; while(q<n){ bool flag=0; while(q<n&&a[p]==b[q]){++p; ++q;} while(p<n&&a[p]!=b[q]){++p; flag=1;} if(flag&&p==n){flag1=1; break;} for(int i=p;i>q;--i){ swap(a[i], a[i-1]); aa[t++]=i; } p=q; } if(flag1)cout<<-1<<endl; else { cout<<t<<endl; for(int i=0;i<t;++i) cout<<aa[i]<<" "; cout<<endl; } }
作者:ALINGMAOMAO
出处:https://www.cnblogs.com/ALINGMAOMAO/p/10702931.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步