给定一个无序的列表A,其中数据均为非负整数,其中奇数和偶数各占一半。 当列表A中的奇数和偶数个数相同时,将A中的奇数和偶数分别排序,并在放入列表时保持:当i是奇数时,A[i]为奇数,i为偶数时,A[i]为偶数 如果输入的数据不符合本题要求,输出ERROR 本题不考虑内存限制,可使用多个列表完成操作。
时间: 2024-02-19 07:04:14 浏览: 118
以下是Python的实现代码:
```python
# 获取输入的列表A
A = input().strip().split()
# 将A中的元素转换成整数
for i in range(len(A)):
A[i] = int(A[i])
# 统计奇数和偶数的个数
odd_count = 0
even_count = 0
for num in A:
if num % 2 == 0:
even_count += 1
else:
odd_count += 1
# 如果奇数和偶数的个数不相等,输出ERROR
if odd_count != even_count:
print("ERROR")
else:
# 对奇数和偶数分别排序
odd_nums = sorted([num for num in A if num % 2 != 0])
even_nums = sorted([num for num in A if num % 2 == 0])
# 将奇数和偶数按照要求排列,构造新列表B
B = []
for i in range(len(A)):
if i % 2 == 0:
B.append(even_nums[i // 2])
else:
B.append(odd_nums[i // 2])
# 输出B
for num in B:
print(num, end=" ")
```
输入示例:
```
2 4 6 1 3 5
```
输出示例:
```
1 2 3 4 5 6
```
输入示例:
```
2 4 6 1 3
```
输出示例:
```
ERROR
```
阅读全文