现在给你一个仅由字符 a 和 b 组成的字符串 s 作为输入。你需要编写一个程序来实现字符串中每个 a 都出现在每个 b 之前,如果满足要求,那我们就输出 True ;否则,我们就输出 False 。用ptyhon
时间: 2024-02-23 08:58:41 浏览: 29
可以采用计数器的思路,从左到右遍历字符串,遇到 a 就将计数器加一,遇到 b 就将计数器减一,如果在遍历过程中计数器为负数,说明出现了一个 b 比前面的 a 先出现,此时需要返回 False。如果遍历完整个字符串后计数器仍然大于等于 0,则说明每个 a 都出现在每个 b 之前,返回 True。代码如下:
```python
def check_order(s):
count = 0
for c in s:
if c == 'a':
count += 1
elif c == 'b':
count -= 1
if count < 0:
return False
return count == 0
# 测试
print(check_order('ababab')) # True
print(check_order('aabbbb')) # True
print(check_order('bababa')) # False
print(check_order('bbbaaa')) # False
```
在函数中,首先将计数器 count 初始化为 0。然后遍历字符串 s,如果遇到 a,则将计数器加一;如果遇到 b,则将计数器减一,并判断计数器是否小于 0,如果是,则说明出现了一个 b 比前面的 a 先出现,此时返回 False。如果遍历完整个字符串后计数器仍然大于等于 0,则说明每个 a 都出现在每个 b 之前,返回 True。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)