BUPT 2017 summer training (for 16) #1E
找到匹配要删除的文件名们但不匹配其它文件名们的表达式。其中?匹配所有字符,其它字符匹配本身。
如果某个位置出现两个及以上的不同字符,那就要用?。再看是否会匹配其它文件名。注意长度不同一定不匹配。
#include <cstdio>
char w[101][101];
bool d[101];
char o[101];
int n,m;
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;++i)
scanf("%s",w[i]);
for(int i=1,t;i<=m;++i)
scanf("%d",&t),d[t]=true;
bool ans=true;
int len=0;
for(int i=1,j;i<=n;++i)
if(d[i]){
for(j=0;w[i][j];++j)
if(o[j]&&o[j]!=w[i][j])
o[j]='?';
else
o[j]=w[i][j];
if(len==0)len=j;
if(j!=len)ans=false;
}
for(int i=1,j;i<=n&&ans;++i)
if(!d[i]){
bool dif=false;
for(j=0;w[i][j];++j)
if(o[j]!='?'&&w[i][j]!=o[j])
dif=true;
if(!dif&&j==len)ans=false;
}
if(ans)printf("Yes\n%s",o);
else puts("No");
return 0;
}
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有