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