2016-07-09 5 views
-1
def Codehelp(st): 
    i = 0 
    noot = "" 
    while i < len(st): 
     if st[i] == '$': 
      noot += "**" + st[i] + "**" 
     i += 1 
    if '$' in noot: 
     return noot 
    else: 
     return "**" 
    return 

В принципе, каждый раз, когда пользователь вводит строку с «$», код возвращает только «$» с 2 звездочками до и после «$». В большинстве тестовых случаев код работает нормально, однако после ввода строки с более чем одним «$», то есть Codehelp("r$t$$"), он выводит **$****$****$** (добавьте два * в начало и конец строки) вместо ****$**$** (игнорируйте первый два *).Наложение перекрытий струнами

ответ

0

Ну, как вы говорите, я получаю этот выход: **$****$****$**. Я могу сказать, что это имеет смысл, потому что он проверяет только текущий экземпляр $ и добавляет ** до и после. Если вы хотите, чтобы он был более «интеллектуальным», вам может потребоваться реализовать что-то, что может заглянуть вперед, чтобы увидеть, есть ли еще $ после текущего.

Однако, чтобы получить **$$ (не уверен, что это то, что вы ожидаете, пожалуйста, исправьте меня), вам нужно посмотреть на следующий индекс, чтобы увидеть, есть ли еще $ (очевидно, принимая во внимание также проверку границ длины строки) и не добавлять дополнительные ** после второго $.

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