Пользовательская функция для ввода данных в виде xx (s) - PullRequest
1 голос
/ 06 августа 2020

Я определил функцию, возвращающую что-то из строки. Я могу получить желаемые результаты прямо сейчас с определенными c входами, но я не уверен, как реализовать, чтобы получить правильный результат с учетом желаемой формы ввода. Я должен сделать это в Python 2.7.13

Формат ввода, который меня просят использовать, имеет следующий формат:

Input: solution.solution ("abccbaabccba")

Вывод: количество повторов строкового шаблона.

Функция определяется следующим образом:

s = "abccbaabccba"

def solution(s): 
    distinctChars = len(set(s))
    lengthString = len(s)

    patternLen1 = int(distinctChars) 
    pattern1Search = s[:patternLen1]

    upperPossibleReps = int(lengthString / distinctChars)

    matchTryUpper = pattern1Search * upperPossibleReps

    patternLen2 = int(distinctChars * 2)
    pattern2Search = s[:patternLen2]

    lowerPossibleReps = lengthString / (distinctChars * 2)

    matchTryLower = pattern2Search * int(lowerPossibleReps)

    if matchTryUpper == s:
        solution = int(upperPossibleReps)
        print(solution)
    else:
        solution = int(lowerPossibleReps)
        print(solution)

solution(s)
    

1 Ответ

0 голосов
/ 08 августа 2020
s = "abccbaabccba"

def repeating_pattern(s):
    a = s[:int(len(s)/2)]
    b = s[int(len(s)/2):]
    winner = ""
    while len(a) != 0:
        if a in b:
            if len(s.replace(a, ""))==0:
                winner = a
        a = a[:-1]
    return winner

repeating_pattern(s)
...