Coder-Strike 2014 - Round 1 C. Pattern

题目的意思是给出n个长度相同的字符串然后找出与他们匹配的字符串

将字符串存入类似二维数组的里面,每一行代表一个字符串,遍历每列,判断每列是否有公共的匹配字符,如果有输出任意一个

如果没有输出'?'

#include <iostream>
#include <vector>
#include <algorithm>
#include <string>

using namespace std;

int main(){
    int n;
    cin >> n;
    vector<string> patterns(n);
    for(int i = 0 ; i < n; ++ i){
        cin >> patterns[i];
    }
    string res ="";
    for(int i = 0 ; i < patterns[0].length();++ i){
        char ch = '?';
        bool flag = false;
        int j = 0;
        for(j = 0; j < n; ++ j){
            if(patterns[j][i] != '?' ){
                flag = true;
                if(ch=='?') ch = patterns[j][i] ;
                else if(ch!=patterns[j][i]) {
                    break;
                }
            }
        }
        if(j < n) ch='?';
        else if(ch=='?') ch ='a';
        res+=ch;
    }
    cout<<res<<endl;
}

 

posted @ 2014-04-19 12:36  OpenSoucre  阅读(167)  评论(0编辑  收藏  举报