对字符串由数字和 “*”星型字符两种字符无序构成的stra,,现在想把所有的星型字符挪到数组的左边,数字字符全部放到右边,数字字符之间的相互顺序不变。补充程序中所缺代码,完成上述功能。
时间: 2023-11-28 13:51:09 浏览: 51
PHP中将一个字符串部分字符用星号*替代隐藏的实现代码
可以使用双指针的方法,一个指针从左向右扫描,一个指针从右向左扫描。左指针找到星号,右指针找到数字,然后交换两个字符,直到左指针和右指针相遇或者交叉。
以下是代码实现:
```python
def move_stars(stra):
left = 0
right = len(stra) - 1
while left < right:
while left < right and stra[left] == '*':
left += 1
while left < right and stra[right].isdigit():
right -= 1
if left < right:
stra[left], stra[right] = stra[right], stra[left]
return stra
```
使用示例:
```python
stra = ['1', '*', '2', '3', '*', '*', '4', '5']
print(move_stars(stra)) # ['*', '*', '1', '5', '4', '3', '2',]
```
阅读全文