C++
#include<bits/stdc++.h>
using namespace std;
unordered_map<string,int>mp;
int n,ans;
signed main(){
cin>>n;
while(n--){
string a,b,c;
cin>>a>>b>>c;
vector<string>v;
v.push_back(a);
v.push_back(b);
v.push_back(c);
//cout<<"a="<<v[0]<<endl;
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
for(int k=0;k<3;k++){
if(i==j||i==k||j==k)continue;
string t=v[i]+"*"+v[j]+"*"+v[k];
//cout<<"t="<<t<<endl;
mp[t]++;
ans=max(ans,mp[t]);
}
}
}
}
cout<<ans;
}
python 用无序字典计数
from collections import defaultdict
n=int(input())
d=defaultdict(int)
for _ in range(n):
l=list(input().split())
l.sort()
t='*'.join(i for i in l)
d[t]+=1;
ans=max(d.values())
print(ans)
java
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Map;
import java.util.HashMap;
import java.util.Arrays;
public class Main{
public static void main(String[] args)throws Exception{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String[] line;
Map<String,Integer>mp=new HashMap<>();
line = br.readLine().split(" ");
int n=Integer.parseInt(line[0]);
for(int i=0;i<n;i++){
line = br.readLine().split(" ");
Arrays.sort(line);
String t=line[0]+"*"+line[1]+"*"+line[2];
mp.put(t,mp.getOrDefault(t,0)+1);
}
int ans=0;
for(Map.Entry<String,Integer> t:mp.entrySet()){
int x=t.getValue();
ans=Math.max(ans,x);
}
System.out.println(ans);
}
}
go
package main
import "fmt"
import "sort"
func main(){
var n int
fmt.Scanf("%d\n",&n)
var ans int = 0
var mp map[ [3]string]int = make(map[[3]string ]int )
var a,b,c string
for i:=0;i<n;i++{
fmt.Scanf("%s %s %s\n",&a,&b,&c)
key:=[3]string{a,b,c}
sort.Slice(key[:],func(i,j int )bool {return key[i]<key[j]})
if mp[key]++;mp[key]>ans{
ans=mp[key]
}
}
fmt.Print(ans)
}
package main
import(
"fmt"
"sort"
"strings"
)
func main(){
var n int
fmt.Scanln(&n)
m:=map[string]int{}
for i:=0;i<n;i++{
a:=make([]string,3)
for j:=0;j<3;j++{
fmt.Scanf("%s",&a[j])
}
sort.Strings(a)
m[strings.Join(a,"*")]++
}
ans:=0
for _,k:=range m{
if(k>ans){
ans=k
}
}
fmt.Print(ans)
}