Вопрос:

Как мне посмотреть конкретно на концах строки в Python?

python string loops

36 просмотра

1 ответ

12 Репутация автора

Я пытаюсь создать функцию, которая проверяет концы строки в Python и возвращает целое число, если оно соответствует условиям, которые я определил, однако у меня проблема с перекрытием чисел, есть ли способ для меня, чтобы обойти это просто с только что встроенными строковыми функциями и без использования импорта? так, например, строка «AAZZ» должна вернуть мне два, но вместо этого возвращает четыре. Условием является совпадение A с Z и совпадение Y с C. Функция будет искать совпадающие пары, пока не встретит пару, которая не соответствует тому, где она остановится, и вернет значение, которое имеет для count. Вот что у меня есть:

def matching(str):
    i = 0
    j = -1
    count = 0

    while i < len(str): 
        if str[i] == 'A' and str[j] == 'Z':
            i += 1
            j -= 1
            count += 1
        elif str[i] == 'Z' and str[j] == 'A':
            i += 1
            j -= 1
            count += 1    
        elif str[i] == 'Y' and str[j] == 'C':
            i += 1
            j -= 1
            count += 1  
        elif str[i] == 'C' and str[j] == 'Y':
            i += 1
            j -= 1
            count += 1          
        else:
            count = 0
    return count
Автор: KMAN Источник Размещён: 08.11.2017 11:29

Ответы (1)


1 плюс

4608 Репутация автора

Решение

Вам нужно изменить условие на i < len(str) + j, иначе вы будете считать все дважды (по одному с каждого конца).

Автор: jhpratt Размещён: 08.11.2017 11:33
32x32