PTA R7-19 编程题:统计符合条件元素的个数
时间: 2023-05-31 10:04:50 浏览: 88
题目描述
给定一个整数数组 nums 和一个整数 target,统计数组中符合条件的元素个数,条件是:对于任意下标 i,满足 nums[i] + target 在数组中也存在。
示例 1:
输入: nums = [1,2,3,4,5], target = 3
输出: 2
解释:
有两个符合条件的元素:1 + 3 = 4 和 2 + 3 = 5。
示例 2:
输入: nums = [1,1,1,1,1], target = 2
输出: 2
解释:
有两个符合条件的元素:1 + 1 = 2 和 1 + 1 = 2。
提示:
1 <= nums.length <= 10^4
-10^9 <= nums[i] <= 10^9
-10^9 <= target <= 10^9
解题思路
可以用一个哈希表来存储数组 nums 中的元素,然后遍历数组 nums,对于每个元素 nums[i],判断 target - nums[i] 是否在哈希表中出现过,若出现过,则说明 nums[i] + target 也在数组中出现过,符合条件,计数器加 1。最后返回计数器的值即可。
Python 代码
相关问题
PTA R7-3 字符串替换
以下是Python实现字符串替换的代码示例:
```python
# 读入文件内容
content = []
while True:
line = input()
if line == 'end':
break
content.append(line)
# 获取需要替换的字符串和替换后的字符串
old_str, new_str = input().split()
# 替换字符串
for i in range(len(content)):
content[i] = content[i].replace(old_str, new_str)
# 输出替换后的结果
for line in content:
print(line)
```
pta 7-8 成绩统计2
好的,这里给出 PTA 7-8 成绩统计2 的题目描述和 Python 3 代码实现。
## 题目描述
本题要求读入 N(1 <= N <= 1000)个成绩,统计其中的优秀(>=85)、良好([70, 85))、及格([60, 70))和不及格(<60)的人数,并输出统计结果。当某一类成绩的人数为0时,不输出该行。
## 输入格式
输入的第一行为正整数 N,表示输入成绩的个数。
接下来 N 行,每行为一个整数,表示一个成绩。
## 输出格式
统计结果,四行,每行输出一个整数,分别表示优秀、良好、及格和不及格的人数。
## 输入样例
```
10
60
75
90
55
70
82
100
67
74
80
```
## 输出样例
```
2
5
2
1
```
## 代码实现
```python
n = int(input()) # 输入成绩个数
# 初始化四个计数器,分别统计优秀、良好、及格和不及格的人数
excellent = 0
good = 0
passing = 0
failing = 0
# 循环读入 n 个成绩,并统计各个类别的人数
for i in range(n):
score = int(input()) # 读入一个成绩
if score >= 85:
excellent += 1
elif score >= 70:
good += 1
elif score >= 60:
passing += 1
else:
failing += 1
# 输出各个类别的人数(如果人数为 0,则不输出该行)
if excellent > 0:
print(excellent)
else:
print("N/A")
if good > 0:
print(good)
else:
print("N/A")
if passing > 0:
print(passing)
else:
print("N/A")
if failing > 0:
print(failing)
else:
print("N/A")
```
代码说明:
1. 首先输入成绩个数 n;
2. 然后初始化四个计数器 excellent、good、passing 和 failing,分别用于统计优秀、良好、及格和不及格的人数,初始值都为 0;
3. 接着使用 for 循环,循环 n 次,每次读入一个成绩 score,并使用 if 语句判断该成绩属于哪个类别,然后累加相应的计数器;
4. 循环结束后,使用 if 语句,判断各个类别的人数是否为 0,如果不为 0,则输出该类别的人数,否则输出 "N/A"。
5. 完成以上步骤,即可得到各个类别的人数统计结果。
希望能帮助到您!