python 元素中心对称 如[2,2,1],输出[2,1,2]
时间: 2024-05-01 19:22:10 浏览: 13
可以使用双指针的方法来实现列表元素的中心对称。具体步骤如下:
1. 定义左右指针,分别指向列表的首尾元素。
2. 当左指针小于右指针时,依次比较左右指针所指的元素。如果左指针指向的元素等于中心元素,则交换右指针所指的元素和中心元素,并将右指针向左移动一位;如果右指针指向的元素等于中心元素,则交换左指针所指的元素和中心元素,并将左指针向右移动一位。
3. 当左指针等于右指针时,表示列表中心元素已经找到,中心对称完成。
下面是代码实现:
```python
def symmetric(lst):
center = lst[len(lst) // 2] # 计算中心元素
left, right = 0, len(lst) - 1 # 定义左右指针
while left < right:
if lst[left] == center:
lst[right], center = center, lst[right]
right -= 1
elif lst[right] == center:
lst[left], center = center, lst[left]
left += 1
else:
left += 1
right -= 1
return lst
```
使用示例:
```python
lst = [2, 2, 1]
print(symmetric(lst)) # 输出 [2, 1, 2]
```
输出结果为 `[2, 1, 2]`。