这个问题是比较暴力的法律主体。
主要是检查每一个是否没有使用足够的?。假设优先使用其他的无论是什么字母,假设你一定不能使用?。
找一个有能力并给予所有的字符串匹配字符串,而且采用的最小?号码。
原标题连接:http://codeforces.com/problemset/problem/412/C
#include <stdio.h>
#include <vector>
#include <string>
#include <iostream>
using namespace std;
int main()
{
int N;
scanf("%d", &N);
vector<string> vst(N);
for (int i = 0; i < N; i++)
{
cin>>vst[i];
}
string ans;
for (int j = 0; j < (int)vst[0].size(); j++)
{
bool allX = true;
char x = vst[0][j];
for (int i = 1; i < (int)vst.size(); i++)
{
if (x == '?')
{
x = vst[i][j];
}
else if (vst[i][j] != '?' && vst[i][j] != x)
{
allX = false;
x = '?';
break;
}
}
if (allX && x == '?') ans.push_back('x');//全是?号
//else if (allX && x != '?') ans.push_back(x);//仅仅有一个不是?号
else ans.push_back(x);//超过一个不是?号,和上面情况合并了
}
cout<<ans;
return 0;
}
版权声明:笔者靖心脏。景空间地址:http://blog.csdn.net/kenden23/,只有经过作者同意转载。