3 条题解
-
1
懒得解释,送给看得懂得有缘人
from collections import Counter from typing import List, Tuple # dt: DefaultDict[str, int] = defaultdict(int) # l: List[str] = input().split() # for i in l: dt[i] -= 1 # newdt: List[Tuple[str, int]] = sorted(dt.items(), key=lambda item: (-item[1], item[0])) c = Counter(input().split()).most_common() newdt: List[Tuple[str, int]] = sorted(c, key=lambda item: (-item[1], item[0])) t, n = 0, 0 for (i, j) in newdt: if n < 5 or t == j: t = j n += 1 print(f"{i} {j}") else: break
-
1
s=input().split() dic={} #存储每个单词的出现次数 for word in s: #统计每个单词的出现次数 if word in dic: dic[word]+=1 else: dic[word]=1 info=[] for i in dic.items(): info.append([i[0],i[1]]) #将字典元素转换成列表 n=len(info) #print(info) #按要求统计出现频率最高的前5个单词 for i in range(n-1): for j in range(n-1,i,-1): if info[j][1]>info[j-1][1] or info[j][1]==info[j-1][1] and info[j][0]<info[j-1][0]: info[j],info[j-1]=info[j-1],info[j] for i in range(n): if i>=5 and info[i][1]!=info[i-1][1]: break print(info[i][0],info[i][1])
-
0
朴素哈希,看不懂建议进厂(doge)。
话说这道题的代码量为什么比我某道紫题还多啊喂!#include <bits/stdc++.h> using namespace std; #define int long long unordered_map<string,int> s; string words[100000]; bool cmp(string l,string r){ if(s[l]==s[r])return l<r;; return s[l]>s[r]; } signed main() { string n,m; int t=1,k; while(cin>>n){ if(!s[n])words[t++]=n; s[n]++; } sort(words+1,words+t,cmp); for(int i=1;i<=5;i++){ k=s[words[i]]; cout<<words[i]<<" "<<s[words[i]]<<endl; } for(int i=6;i<t;i++){ if(s[words[i]]!=k)break; cout<<words[i]<<" "<<s[words[i]]<<endl; } return 0;//为,美,0 }
- 1
信息
- ID
- 807
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- 递交数
- 593
- 已通过
- 155
- 上传者