Coder-Strike 2014 - Round 1 C. Pattern

OpenSoucre發表於2014-04-19

題目的意思是給出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;
}

 

相關文章