2016-09-07 2 views
-3

코드는 가장 긴 문자열을 알파벳 순서로 반환합니다. 이 문자열은 'beggh'여야합니다. 문제를 확인하는 데 도움이 필요합니다.초심자 파이썬 프로그램 지원

편집 : 사본에서 승인 된 답변이 작동하지 않았습니다. 이것이 파이썬 3과 2 또는 무엇 때문인지 확실하지 않습니다. 이전 코드는 내 코드 아래에 있습니다.

s = 'azcbobobegghakl' 
temp_s = '' 
startingChar = 0 
currentChar = 0 
endingChar = 1 

for x in range(len(s)-1): 
    if s[endingChar] >= s[currentChar]: 
     temp_s = s[startingChar:endingChar+1] 
     endingChar += 1 
     currentChar += 1 
    else: 
     startingChar += 1 
     endingChar += 1 
     currentChar += 1 
print('Longest substring in alphabetical order is: ', temp_s) 

이 이전 코드는 다음과 같습니다

s = input('enter characters: ') 
longest = s[0] 
current = s[0] 
for c in s[1:]: 
    if c >= current[-1]: 
     current += c 
    else: 
     if len(current) > len(longest): 
      longest = current 
     current = c 
print('Longest substring in alphabetical order is:'), longest 
+0

문자열은 연속적으로 발생하는 알파벳순으로 정렬 된 여러 개의 작은 하위 문자열로 구성되어 있다고 생각할 수 있습니다. 간단한 접근법은 문자열을 따라 이동하는 모든 하위 문자열을 찾아서 가장 긴 문자열을 식별하는 것입니다. –

+0

http://stackoverflow.com/questions/27937076/python-word-counter –

답변

-2

내가 ORD()는 여기에 일부 도움이 될 것 같아요.

예를 들어 'a'를 만들려면 ord ('a') - 96을 사용하는 것이 좋습니다. 'b'의 값을 가져 오는 것은 비슷합니다. ord ('b') - 96.

그런 다음 문자열의 다음 값의 ord()가 이전 값과 같거나 1보다 큰지 여부를 문자열 검사를 통해 반복합니다.

+3

'ord()'이 필요하지 않습니다. 문자를 직접 비교할 수 있습니다 (예 : ''b '> ='a '== 참' – AChampion