2016-09-19 3 views
0

첫 번째 Python 테스트에서 문자가 알파벳순으로 나오는 문자열의 가장 긴 부분 문자열을 인쇄하는 프로그램을 작성하지 못했습니다.가장 긴 문자열을 찾으려고 할 때 예기치 않은 오류가 발생했습니다.

이 코멘트는

를 읽을의

그래서 여기

이었다 내 시도 "라는 질문도 요청하지만 만족 않습니다 프로그램은 규칙 번호 4 따라서 당신의 대답은 허용되지 않습니다와 모순" 코드 :

def obtain_longest_substring(string): 
    current_substring = longest_substring = string[0] 
    for letter in string[1:]: 
     if letter >= current_substring[-1]: 
      current_substring += letter 
      if len(current_substring) > len(longest_substring): 
       longest_substring = current_substring 
     else: 
      current_substring = letter 
    return longest_substring 


def main(): 
    s = input("Enter a string: ") 
    print("Longest substring in alphabetical order is: " + obtain_longest_substring(s)) 

if __name__ == "__main__": 
    main() 

그러나 예상되는 해결책에는 따라야하는 몇 가지 규칙이 있습니다. 규칙 번호 4는 다음과 같이 말했습니다.

이와 같은 문제에 대해서는 이미 언급 한 입력 문이나 변수를 정의하지 마십시오. 우리의 자동화 된 테스트는 당신에게 가치를 제공 할 것입니다.

저는 Python을 처음 사용합니다. 아무도 내가 뭘 잘못하고 있다고 말할 수 있습니까?

+0

신중하게 할당을 읽어

당신은 다시 쓰기로가 시도 할 수 있습니다. 당신은 그것이 프로그램 *을 요구한다고 말하지만 실제로 프로 시저 *일까요? 이 경우 그것은 (말 그대로) 쓸모없는'input' 라인입니다. – usr2564301

+0

규칙 번호 4를 읽고 코드를 살펴보십시오. – TigerhawkT3

답변

0

이 아니며 input 문을 포함하거나 변수를 정의해야합니다.

current_substring = longest_substring = s[0] 
for letter in s[1:]: 
    if letter >= current_substring[-1]: 
     current_substring += letter 
     if len(current_substring) > len(longest_substring): 
      longest_substring = current_substring 
    else: 
     current_substring = letter 

print("Longest substring in alphabetical order is: " + str(longest_substring)) 
+0

고마워요. 그것은 작동합니다! – MachineLove

+0

정확히 원한다면 왼쪽의 녹색 진드기를 클릭하십시오. 그 대답은 받아 들일만한 대답으로 받아 들여질 것입니다. :) 기꺼이 도와 드리겠습니다. – jiltedpotato

0

규칙에 "입력 문을 포함하지 마십시오"라고 표시됩니다. 당신은 입력 진술을 (main에) 포함 시켰습니다.

+0

'main'은 여전히 ​​괜찮습니까? 내 초보자 상태를 파이썬으로 배신. 변수가 '글로벌'이면 프로그램에 붙여 넣기 만해도 생존 할 수 있습니까? – usr2564301

관련 문제