阿飞是刚入职智加科技的萌新,初来乍到的他了解到几乎每天都有不同型号、不同配置、不同编号的卡车在中美两地运营和测试,于是心血来潮的他想统计公司里每种型号的卡车数量,细心认真的他发现工程团队给每辆车命名时都会按照 ‘车型-编号1-编号2-...-编号k’ 的形式,但是在拉取了公司里所有车辆名称后,阿飞发现存在一些不合法的车辆名称。现在请你帮助他写个程序来整理这些车辆名称,并且统计下合法车辆名称里每种车型对应的卡车数量吧。
输入的第1行包含一个正整数n,表示共有n组数据,0 < n < 1000000接下来的n行包含一个字符串(长度小于100),表示各个卡车的名称。
按照各个车型的字典序逐行输出车型及该车型的卡车数量
7 j7-00001 j7-l4e-00002 volvo-wuzhui paccar-k001dm navistar-atlas kenworth-odin peterbilt-thor
j7 2 kenworth 1 navistar 1 paccar 1 peterbilt 1 volvo 1
按照字典序自小到大依次输出车型及该车型的数量,其中"j7-00001"和"j7-l4e-00002"均属于j7车型
4 j7-00003 mkz- paccar-.- volvo^-^
j7 1
"mkz-" 编号1为空,不纳入统计"paccar-.-" 编号1不满足仅包含数字和小写字母要求,编号2不满足不为空要求,不纳入统计"volvo^-^" 不满足车型和编号仅包含数字和小写字母要求,不纳入统计
只有形如"车型-编号1-编号2-...-编号k"才是可以纳入统计的合法车辆名称,其中"车型"和"编号1~k"应仅包含数字或字母且不为空,0 < k < 50
import re
from collections import defaultdict
def isValid(line):
items = line.split('-')
if len(items) < 2: # 没有编号的记录过滤掉
return False
for item in items:
if not item.isalnum(): # 判断是否都是字母或数字
return False
return True
if __name__ == "__main__":
n = int(input())
termFreq = defaultdict(lambda: 0)
for _ in range(n):
line = input()
if isValid(line):
termFreq[line.split("-")[0]] += 1
ans = sorted(termFreq.items(), key=lambda x: x[0])
for pair in ans:
print(f"{pair[0]} {pair[1]}") #include <bits/stdc++.h>
using namespace std;
int main(){
string s;
map<string,int> table;
int n;
cin>>n;
while(n--){
cin>>s;
int num=0;
bool valid=true, flag=true;
string name;
if(s.back()=='-')
continue;
for(int i=0;i<s.size();i++){
if(s[i]=='-'){
flag=false;
num++;
continue;
}
if(!isdigit(s[i])&&((s[i]-'a'<0)||(s[i]-'a'>25))){
valid=false;
break;
}
if(flag)
name.push_back(s[i]);
}
if(valid&&num>0){
if(!table.count(name))
table[name]=1;
else
table[name]++;
}
}
for(auto it=table.begin();it!=table.end();it++){
cout<<it->first<<' '<<it->second<<endl;
}
} import re
regex = r"[a-zA-Z0-9]+"
d={}
isLegal=True
carModel=""
n=int(input())
for i in range(n):
str1=input()
a=list(str1.split("-"))
isLegal=True
for j in a:
if not re.match(regex,j):
isLegal=False
break
if len(a)==1:
isLegal=False
if isLegal:
carModel=a[0]
if carModel not in d:
d[carModel]=1
else:
d[carModel]+=1
d=sorted(d.items(),key=lambda x:x[0])
for i in d:
print(i[0],i[1],sep=" ")