A. Acacius and String

    科技2022-08-11  131

    https://codeforces.com/contest/1379/problem/A 直接暴力就行,abacaba只能出现一次,然后枚举每个位置,从位置数七个,如果这七个位置有?就放上,其他的?全部放z,遍历一遍判断。

    #include<bits/stdc++.h> #define ll long long #define ios ios::sync_with_stdio(false);cin.tie(0); cout.tie(0); using namespace std; const int maxn=1e2+5,INF=0x3f3f3f3f; string s,q="abacaba"; bool check(string a) { int sum=0; for(int i=0;i<=a.size()-7;i++) if(a.substr(i,7)==q) sum++; if(sum==1) return true; else return false; } int main() { ios; int t; cin>>t; while(t--) { int n; int ok=0; cin>>n>>s; for(int i=0;i<=s.size()-7;i++) { string a=s; for(int j=0;j<7;j++) if(a[i+j]=='?') a[i+j]=q[j]; for(int i=0;i<a.size();i++) if(a[i]=='?') a[i]='z'; if(check(a)) { ok=1; cout<<"Yes"<<endl; cout<<a<<endl; break; } } if(ok==0) cout<<"No"<<endl; } return 0; }
    Processed: 0.038, SQL: 8