7-21 sdut-统计字符在字符串中出现的次数
分数 10
作者 周雪芹
单位 山东理工大学
统计并输出某给定字符在给定字符串中出现的次数。
输入格式:
第一行给出一个以回车结束的字符串(一行少于80个字符);
第二行输入一个字符。
输出格式:
在一行中输出给定字符在给定字符串中出现的次数。(如果未出现,则输出0)
输入样例:
programming is More fun!
m
输出样例:
2
实现代码:
python
s=input()
c=input()
cnt=0
for i in s:
if i==c:
cnt+=1
print(cnt)
7-22 sdut-四则运算(用字典实现)
分数 10
作者 周雪芹
单位 山东理工大学
根据输入信息进行四则运算(用字典实现)。
(与c语言的switch语句相比较。)
输入格式:
第1行中输入一个数字a;
第2行中输入一个四则运算符(+ , - , * , / ) op,
在第3行中输入一个数字b。
输出格式:
在一行中输出 a op b 的运算结果(保留2位小数)。
输入样例1:
7
/
3
输出样例1:
2.33
输入样例2:
10
/
0
输出样例2:
divided by zero
实现代码:
python
x=float(input())
c=input()
y=float(input())
if c=='+':
t=x+y
print("%.2f" %t)
elif c=='-':
t=x-y
print("%.2f" %t)
elif c=='*':
t=x*y
print("%.2f" %t)
else:
if y!=0:
t = x / y
print("%.2f" % t)
else:
print("divided by zero")
7-23 sdut-统计工龄
分数 10
作者 周雪芹
单位 山东理工大学
给定公司N名员工的工龄,按工龄增序输出每个工龄段有多少员工。
输入格式:
首先给出正整数N(≤105 ),即员工总人数;随后给出N个整数,即每个员工的工龄,范围在[0, 50]。
输出格式:
按工龄的递增顺序输出每个工龄的员工个数,格式为:"工龄:人数"。
每项占一行。
输入样例:
8
10 2 0 5 7 2 5 2
输出样例:
在这里给出相应的输出。例如:
0:1
2:3
5:2
7:1
10:1
实现代码:
python
n=int(input())
num1=[int(num) for num in input().split()]
for i in range(51):
if num1.count(i)>0:
print(f"{i}:{num1.count(i)}")
7-24 sdut-字典合并
分数 10
作者 周雪芹
单位 山东理工大学
输入用字符串表示两个字典,输出合并后的字典。字典的键用一个字母或数字表示。
注意:1和'1'是不同的关键字!
输入格式:
在第一行中输入第一个字典字符串;
在第二行中输入第二个字典字符串。
输出格式:
在一行中输出合并的字典,输出按字典序。
"1" 的 ASCII 码为 49,大于 1,排序时 1 在前,"1" 在后。其它的字符同理。
输入样例1:
{1:3,2:5}
{1:5,3:7}
输出样例1:
1:8
2:5
3:7
输入样例2:
{"1":3,1:4}
{"a":5,"1":6}
输出样例2:
1:4
'1':9
'a':5
实现代码:
python
def fun(arr):
x=arr[0]
if isinstance(x,int):
return x
elif isinstance(x,str):
return ord(x)
d1=eval(input())
d2=eval(input())
for i in (d2):
if i in d1:
d1[i]+=d2[i]
else:
d1[i]=d2[i]
l=list(d1.items())
t=sorted(l,key=fun)
for key,val in t:
if isinstance(key,int):
print(f"{key}:{val}")
elif isinstance(key,str):
print(f"'{key}':{val}")
7-25 sdut-集合相等问题
分数 10
作者 周雪芹
单位 山东理工大学
给定2 个集合S和T,试设计一个判定S和T是否相等的蒙特卡罗算法。
设计一个拉斯维加斯算法,对于给定的集合S和T,判定其是否相等。
输入格式:
输入数据的第一行有1 个正整数n(n≤10000),表示集合的大小。
接下来的2行,每行有n个正整数,分别表示集合S和T中的元素。
输出格式:
将计算结论输出。集合S和T相等,则输出:YES,否则输出:NO。
输入样例:
3
2 3 7
7 2 3
输出样例:
YES
实现代码:
python
n=int(input())
num1=[int(num) for num in input().split()]
num2=[int(num) for num in input().split()]
l1=set(num1)
l2=set(num2)
if l2==l1:
print("YES")
else:
print("NO")
7-26 sdut-植物与颜色
分数 10
作者 周雪芹
单位 山东理工大学
请定义具有red, orange, yellow, green, blue, violet六种颜色的变量color。
根据输入的颜色名称,输出以下六种植物花朵的颜色:
Rose(red), Poppies(orange), Sunflower(yellow), Grass(green), Bluebells(blue), Violets(violet)。
如果输入的颜色名称不在变量color中,例如,输入:purple,请输出:I don't know about the color purple.
输入格式:
第1行为颜色的数量n。
接下来有n行字符串每行有一个字符串代表颜色名称,颜色名称最多30个字符。
输出格式:
输出对应颜色的植物名称,例如:Bluebells are blue.
如果输入的颜色名称不在color变量中,例如purple, 请输出I don't know about the color purple.
输入样例:
3
blue
yellow
purple
输出样例:
Bluebells are blue.
Sunflower are yellow.
I don't know about the color purple.
实现代码:
python
d={
'red':'Rose','orange':'Poppies',
'yellow':'Sunflower','green':'Grass',
'blue':'Bluebells',"violet":'Violets'
}
n=int(input())
while n:
n-=1
s=input()
if s in d:
print(f"{d[s]} are {s}.")
else:
print(f"I don't know about the color {s}.")
7-27 sdut-众数
分数 10
作者 周雪芹
单位 山东理工大学
众数是指在一组数据中,出现次数最多的数。例如:1, 1, 3 中出现次数最多的数为 1,则众数为 1。
给定一组数,你能求出众数吗?
输入格式:
输入数据有多组(数据组数不超过 50)。对于每组数据:
第 1 行输入一个整数 n (1 <= n <= 10000),表示数的个数。
第 2 行输入 n 个用空格隔开的整数 Ai (0 <= Ai <= 100000),依次表示每一个数。
输出格式:
对于每组数据,在一行中输出众数以及它出的次数,中间用空格分隔。
数据保证有唯一的众数。
输入样例:
3
1 1 3
5
0 2 3 1 2
输出样例:
1 2
2 2
实现代码:
python
while True:
try:
sum=0
a=0
cnt=0
n=int(input())
num1=[int(num) for num in input().split()]
for i in num1:
if num1.count(i)>sum:
sum=num1.count(i)
a=i
print(a,sum)
except:
break