2016-10-09 2 views
-3

Это может быть начинающий вопрос, но я не могу найти ответ в любомнайти подстроку в строке питона

Как найти и вернуть подстроку из другой строки, в которой charachers находятся в другой заказ ?

Когда я проверяю код, который, как представляется, дает правильный ответ, но я пытаюсь напечатать его, получая True или False, а также, когда я его отправлю, он говорит: «Неправильно. правильный результат для ввода («UdaciousUdacitee», «Udacity»). Ваше представление прошло 3 из 4 тестовых случаев: «.... я в замешательстве ... и я обнимал мозг около 3 часов ,

Спасибо

Test case 1: False 
Test case 2: True 
Test case 3: True 
Test case 4: True 

Более точно:

def fix_machine(debris, product): 
    if debris.find(product): 
    return product 
    else: 
    print("Give me something that's not useless next time.") 


print "Test case 1: ", fix_machine('UdaciousUdacitee', 'Udacity') == "Give me something that's not useless next time." 
print "Test case 2: ", fix_machine('buy me dat Unicorn', 'Udacity') == 'Udacity' 
print "Test case 3: ", fix_machine('AEIOU and sometimes y... c', 'Udacity') == 'Udacity' 
print "Test case 4: ", fix_machine('wsx0-=mttrhix', 't-shirt') == 't-shirt' 
+3

Что вы пробовали? Переполнение стека не является хорошим местом, чтобы попросить других людей написать свой код для вас. – smarx

ответ

0

Вы print() ING в else дело. Я думаю, вы хотели вернуть эту строку. (по крайней мере, согласно вашему утверждению)

0

Вы использовали str.find() неправильно.

"It determines if string str occurs in string, or in a substring of string if starting index beg and ending index end are given." 

Будет рассмотрен порядок, который не является тем, что вы хотите. Измените свой fix_machine на:

def fix_machine(debris, product): 
    charNumInDebris = dict() 
    charNumInProduct = dict() 

    for c in debris: 
    if c in charNumInDebris: 
     charNumInDebris[c] += 1 
    else: 
     charNumInDebris[c] = 1 

    for c in product: 
    if c in charNumInProduct: 
     charNumInProduct[c] += 1 
    else: 
     charNumInProduct[c] = 1 

    for c in charNumInProduct: 
    if not (c in charNumInDebris and charNumInDebris[c] >= charNumInProduct[c]): 
     return "Give me something that's not useless next time." 

    return product 
Смежные вопросы