Python 算法判断字符串是否为'序列1@序列2'形式

本文提供一个 Python 算法,用于判断一个给定字符串是否符合'序列1@序列2'的形式,其中序列2是序列1的逆序,并且字符串中恰好只有一个'@' 字符。

def is_inverse_sequence(str):
    stack = []
    for char in str:
        if char != '@':
            stack.append(char)
        else:
            break

    for char in str:
        if char != '@':
            if not stack or char != stack.pop():
                return False
        else:
            return False
    
    return True if not stack else False

使用这个算法,你可以通过调用 is_inverse_sequence(str) 来判断字符串 str 是否符合形如'序列1@序列2'的形式,其中序列2是序列1的逆序,并且只有一个 '@' 字符。

示例用法:

str1 = 'ab@ba'
str2 = 'abc@cba'
str3 = 'abcd@dcba'
str4 = 'abcd@dcbb'

print(is_inverse_sequence(str1))  # 输出:True
print(is_inverse_sequence(str2))  # 输出:True
print(is_inverse_sequence(str3))  # 输出:True
print(is_inverse_sequence(str4))  # 输出:False

请注意,这里的算法假设输入的字符串 str 包含的字符都是合法的,并且不会出现空字符串的情况。

Python 算法判断字符串是否为“序列1@序列2”形式

原文地址: https://www.cveoy.top/t/topic/bmJi 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录