标签:lag 需要 字符 break std cin ++ div main
给你n个字符串。在任意字符串组合中,找到符合要求的组合字符串的最大长度。组合字符串中的不同字母的个数不能超过2个既符合要求。
由于字符串的总长不会超过1000,采用暴力即可。我们遍历26个字母中任意两个(可重复)命名为a,b,然后遍历n个字符串,如果字符串中只包含a,b那么它的长度就可以累加到答案里面。最后对每一次遍历后的结果取最大值,即需要的结果。复杂度为26*26*1000
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int n,ans;
string s[110];
int main(){
cin>>n;
for (int i=1; i<=n; i++) cin>>s[i];
for (int i=0; i<26; i++) {
for (int j=i; j<26; j++) {
char a=‘a‘+i,b=‘a‘+j; //在26个字母中任选两个命名a,b,包括重复。
int res=0;
for (int k=1; k<=n; k++) {//遍历字符串数组
int flag=1;
for (int l=0; l<s[k].length(); l++) {
if (s[k][l]!=a&&s[k][l]!=b) {
flag=0;break;
}
}
if (flag) res+=s[k].length();//如果这个字符串仅包含a,b。那么就符合条件。
}
ans=max(ans, res);//对每一次匹配字母最后得到的res 取最大值ans。
}
}
cout<<ans<<endl;
}
标签:lag 需要 字符 break std cin ++ div main
原文地址:https://www.cnblogs.com/yishuda/p/12790068.html