2016-07-09 1 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$$")을 입력하면 ****$**$** 대신에 **$****$****$** (문자열의 시작과 끝 모두에 *를 더함)을 출력합니다. 2 *).문자열 조작 중첩

답변

0

글쎄, 내가이 출력을 얻는다 고 말하는 것 : **$****$****$**. 나는 그것이 $의 현재 인스턴스 만 검사하고 전후에 **을 추가하기 때문에 이것이 합리적이라고 말할 수 있습니다. 더 지능적으로 보이기를 원한다면, 현재의 것 이후에 다른 $이 있는지보기 위해 미리 들여다 볼 수있는 것을 구현해야 할 수도 있습니다.

그러나 **$$ (예상 한 내용이 맞는지 확인하십시오.)을 얻으려면 다음 색인을보고 또 다른 $이 있는지 확인해야합니다 (분명히 문자열 길이 경계 검사도 고려해야 함).) 두 번째 $ 다음에 **을 추가하지 마십시오.