CF412C

· · 题解

思路

如果某一位完全不匹配,那么那一位就等于 '!'。如果匹配,那么那一位就等于 '?'。

'!' 代表要输出 '?','?' 代表可以是任何字符,我这里默认是 'a'。最后输出时判断一下就好了。

代码


#include<bits/stdc++.h>
using namespace std;
int main() {
    string a,b;
    int n;
    cin>>n;
    for(int j=1; j<=n; j++) {
        cin>>b;
        if(j==1)
        {
            a=b;
            continue;
        }
        for(int i=0; i<a.size(); i++) {
            if(a[i]=='?')
                a[i]=b[i];
            if(a[i]!=b[i]&&b[i]!='?'&&a[i]!='!')
                a[i]='!';
        }
    }
    for(int i=0; i<a.size(); i++) {
        if(a[i]=='!')
            cout<<'?';
        else if(a[i]=='?')
            cout<<'a';
        else
            cout<<a[i];
    }
    return 0;
}