检查字符串中彼此相邻的重复字符

2024-04-25 20:34:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望用户输入这样一个字符串,以(a)开头和结尾,中间有重复的字母,如下所示:

“阿爸” 重复可以是:(bb),(bbb),(bbbbb)或更像这样: “abbbbbabba”“abbbbbabbbba”

我设法像这样检查字符串的开头和结尾:

input_sentence = input()
    if input_sentence[0] == 'a' and input_sentence[len(input_sentence) - 1] == 'a' :
        print('yes')

我试着像这样检查前面的值:

pass= 'abbabbabba'
prev = ''
for character in pass:
    if character == prev:
       print("repeated character:", character)
    prev = character

我只能检查一遍重复的字母。你知道吗

也许这是不对的,但我想知道如何检查一个字母在一个字符串中以特定的顺序重复


Tags: 字符串用户inputif结尾字母passsentence
2条回答

电子邮箱:f.wue

所以应该是这样的:

input_sentence = input-sequence.split("a")
if input_sentence.startswith('a') and input_sentence.endswith('a'):
    print('yes')

ex = 'abbabbabbabba'

def check_recursive(character, last_characters):
    sequence = character
    for i in reversed(range(0,len(last_characters))):
        if last_characters[i] == character:
            sequence += last_characters[i]
        else:
        return sequence

outputs = []
for i in reversed(range(1, len(ex))):
    output = check_recursive(ex[i], ex[:i])
    if output != ex[i]:
        outputs.append(output)
if len(set(outputs)) == 1:
    print("Only one type of sequence.")

可以使用regular expression检查输入是否与所需模式匹配。你知道吗

>>> p = r'^(abb+)+a$'
>>> re.match(p, "abbabbabbabbabba")
<re.Match object; span=(0, 16), match='abbabbabbabbabba'>
>>> re.match(p, "abbbabbbabbba")
<re.Match object; span=(0, 13), match='abbbabbbabbba'>
>>> re.match(p, "abbbabbbaba")
>>> 

模式p匹配一个字符串,该字符串完全由一个或多个“a”字符串后跟至少两个“b”组成,并且在最末端有一个“a”。你知道吗

如果字符串与模式匹配,match函数将返回匹配对象,否则它将返回None。你知道吗

相关问题 更多 >