[Python字符串]统计得分
给出一个由A和X组成的字符串(长度为1-80),统计字符总得分,其中每个A的得分为目前连续出现的A的个数,X的得分为0。例如AAXXAXXAAA的得分为1+2+1+1+2+3等于10。
输入
输入一行数据,内容为由A和X组成的字符串。
输出
对于输入的字符串输出对应的得分。
样例输入 复制
AAXXAXXAAA
样例输出 复制
10
s = input()
score = 0
count = 0
for c in s:
if c == 'A':
count += 1
score += count
elif c == 'X':
count = 0
print(score)
[Python循环]数组的距离
已知元素从小到大排列的两个数组x[]和y[],请写出一个程序算出两个数组彼此之间差的绝对值中最小的一个,这叫做数组的距离
样例输入 复制
1 2 3 4 5
6 7 8 9 10 14
样例输出 复制
1
提示:程序中使用两个input()函数进行输入。
x = list(map(int, input().split()))
y = list(map(int, input().split()))
min_distance = float('inf')
for i in x:
for j in y:
distance = abs(i - j)
if distance < min_distance:
min_distance = distance
print(min_distance)中使用两个input()函数进行输入。
[Python]求矩阵对角线元素和
求矩阵的两对角线上的元素之和
输入
矩阵的行数N
和一个N*N的整数矩阵a[N][N](1<=N<=10),整数没有规律,可以是任意规定范围内整数
输出
所输矩阵的两对角线上的元素之和
样例输入 复制
3
1 2 3
4 5 6
7 8 9
样例输出 复制
25
提示
输入数据可使用的一种思路:
n = 输入行数
for i in range(n):
将每一行数据(input().split())处理后放入一个临时的列表中
依次将临时列表追加到一个结果列表中
n=int(input())
lst=[]
for i in range(n):
temp=[]
for j in input().split():
temp.append(int(j))
lst.append(temp)#如何创建一个矩阵?
s=0
for i in range(n):
for j in range(n):
if i==j or i+j==n-1:#矩阵中每一个元素的标识在这种情况下都是唯一的
s+=lst[i][j]
print(s)
[Python]数字筛选
输入一个2(包含)至9(包含)之间的一位数字例如7(由oj系统自动输入),输出1-100中剔除了包含该数字例如“7”、该数字的倍数例如7的倍数的所有数字,并且⼀行输出10个数字(最后一行可能不足10个数),数字之间用“,”分隔。输出结果如样例所示。
输入
不小于 2 且不超过 9 的整数
输出
输出若干行,每行 10 个数,逗号间隔,每行的最后一个数后面没有逗号,最后一行可能不足10个数(最后一个数后面也没逗号)
样例输入 复制
2
样例输出 复制
1,3,5,7,9,11,13,15,17,19
31,33,35,37,39,41,43,45,47,49
51,53,55,57,59,61,63,65,67,69
71,73,75,77,79,81,83,85,87,89
91,93,95,97,99
num = int(input())
result = []
for i in range(1, 101):
if str(num) not in str(i) and i % num != 0:
result.append(str(i))
if len(result) == 10:
print(','.join(result))
result = []
if result:
print(','.join(result))
[Python]验证命题:37的倍数特性
验证命题:如果一个三位整数是37的倍数,则这个整数循环左移后得到的另两个数也是37的倍数,例如481是37的倍数,814和148也是37的倍数。命题为真输出字符串“It's a true proposition.”,命题为假则输出字符串“It's a false proposition.”。
提示
本题没有输入,验证所有的37倍数的三位数
for i in range(100, 1000):
if i % 37 == 0:
left_shifted_1 = int(str(i)[1:] + str(i)[0])
left_shifted_2 = int(str(i)[2] + str(i)[:2])
if left_shifted_1 % 37 != 0 or left_shifted_2 % 37 != 0:
print("It's a false proposition.")
break
else:
print("It's a true proposition.")
[Python]统计元素出现次数
利用Python中的random模块生成1000个0到100之间(包含0和100)的随机整数,并统计每个元素(产生的随机整数)的出现次数。为了保持测试数据的一致性,代码中利用random模块生成1000个数据时需要像如下形式:
import random
random.seed(0)
x=[random.randint(0,100) for i in range(1000)]
请在编写代码时按照上面的方式生成数据
输入
无
输出
输出每种元素的统计个数,每行一个按照元素从小到大的顺序从上到下输出,中间用一个空格隔开。输出格式(非内容)如下:
0 3
1 5
...
表示元素0出现3次,1出现5次等等。
import random
random.seed(0)
x = [random.randint(0, 100) for i in range(1000)]
count_dict = {}
for num in x:
if num in count_dict:
count_dict[num] += 1
else:
count_dict[num] = 1
sorted_keys = sorted(count_dict.keys())
for key in sorted_keys:
print(f"{key} {count_dict[key]}")