You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何判断字符串中是否存在列表内元素的连续相邻出现

解法实现

实现思路

遍历字符串的所有相邻字符对,只要存在任意一对字符都属于给定运算符列表,就返回False;遍历完全部字符对都没有符合的情况,就返回True。

基础实现(适合初学者理解)

operators = ['+', '-', '*', '/', '=']

def check_operator_adjacent(input_str):
    # 遍历到倒数第2位即可,防止下标越界
    for idx in range(len(input_str) - 1):
        current_char = input_str[idx]
        next_char = input_str[idx + 1]
        # 判定两个相邻字符是否都是运算符
        if current_char in operators and next_char in operators:
            return False
    return True

测试验证

# 测试用例1:存在连续运算符,返回False
print(check_operator_adjacent('5+3=+2'))
# 测试用例2:无连续运算符,返回True
print(check_operator_adjacent('5+3-3=2/1'))
# 测试用例3:存在连续运算符,返回False
print(check_operator_adjacent('5+-2=0'))

优化写法(更简洁高效)

把运算符列表换成集合,in查询效率从O(n)提升到O(1),配合any()函数简化代码:

def check_operator_adjacent(input_str):
    operators = {'+', '-', '*', '/', '='}
    return not any(
        input_str[i] in operators and input_str[i+1] in operators 
        for i in range(len(input_str) - 1)
    )

内容的提问来源于stack exchange,提问作者Nawa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 01:54:02