F. Spy-string--------------------------------思維(暴力枚舉)

在這裏插入圖片描述

在這裏插入圖片描述
題意:
給定n個長度爲m的字符串,讓你構造一個字符串,使得與這n個字符串不同的地方少於1
解析:
根據題意不同的地方最多隻有1個,那麼我們在n個串裏面隨便找一個串作爲基準串。然後我們暴力枚舉修改每一個位置(修改爲’a’~‘z’),.然後再和n-1串作比較。如果不同之處>=2,那麼是肯定不行的。

那麼時間複雜度:O(tm26nm)

#include<bits/stdc++.h>
using namespace std;
int t,n,m;
string s[20];
int main()
{
	cin>>t;
	while(t--)
	{
		cin>>n>>m;
		for(int i=0;i<n;i++) cin>>s[i];
		string ch;
		for(int i=0;i<m;i++)
		{
			string str=s[0];
			for(char j='a';j<='z';j++)
			{
				int f=0;
				str[i]=j;
				for(int k=1;k<n;k++)
				{
					int ans=0;
					for(int p=0;p<m;p++)
					{
						if(str[p]!=s[k][p]) ans++;
					}
					if(ans>=2)
					{
						f=1;
						 break;	
					 }
				}
				if(f==0) ch=str;
			}
		}
		if(ch.size()==0) cout<<-1<<endl;
		else cout<<ch<<endl;
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章