2014-11-05 5 views
1

Как бы найти индекс подстроки внутри строки без использования метода find и метода индекса? Нужно ли цитировать или использовать метод len?Как найти индекс для подстроки?

def substring_test(x,y): 
    if y in x: 
     r = True 
    else: 
     r = False 
    return r 

t = input("Enter a string: ") 
v = input("Enter a starting substring ") 
result = substring_test(sentence, substring) 
print(result) 

ответ

0

Если вы не можете использовать find и index метод, то вам нужно грубой силы его.

  1. Старт из положения 0

  2. получить символы до длины строки ищется из положения

  3. Если строка соответствует, вернуть позиции

  4. иначе, положение приращения

  5. если положение больше или равно разному се между фактической строкой и искали строки возврата -1

  6. В противном случае перейти к 2

Вы можете реализовать этот алгоритм, как это

def substring_test(x, y): 
    if len(y) > len(x): 
     return -1 
    for i in range(len(x) - len(y) + 1): 
     if x[i:i+len(y)] == y: 
      return i 
    return -1 
+0

О порядке, спасибо за объяснения его, я никогда не понимал, как это возможно теперь я понимаю – Bob

+0

@Bob Добро пожаловать :-) Вы можете [принять этот ответ] (http://meta.stackexchange.com/a/5235), если это вам поможет. – thefourtheye

+0

Когда я прохожу через него, я возвращаю -1 независимо от того, что – Bob