2014-11-20 2 views
0

입력 문자열이 회문인지 테스트하는 프로그램을 만들어야합니다. 회문은 '정오'와 같이 역순으로 읽는 단어의 순서입니다. 요구 사항으로하고있는 프로그램은 다음과 같습니다텍스트 파일 python에서 palindrome 프로그램

  • 당신은이 프로그램은 문자 이외의 모든 문자를 무시해야 스택
  • 를 사용해야합니다. 파일에서
  • 입력
  • 테스트 하나의 단어와 완전한 문장
  • 일부 허위 사실 결과가 있어야합니다. 여기

지금까지 내 코드입니다 :

f = open('myTextFile.txt', "r")  
line = f.readline() 

while line:  
     print(line)  
     line = f.readline()  
     exclude = set("-")  
     line = ''.join(ch for ch in line if ch not in exclude)  
     exclude = set(",")  
     line = ''.join(ch for ch in line if ch not in exclude)  
     exclude = set(".")  
     line = ''.join(ch for ch in line if ch not in exclude)  
     exclude = set(" ")  
     line = ''.join(ch for ch in line if ch not in exclude) 

f.close() 

내 질문은 내가 모든 여분의 문자를 제거, 내가 가지 잃었어요, 다음에 무엇을, 나는이 목록에 각 줄을 추가한다 별도로 작업 할 수 있습니까? 저를 올바른 방향으로 안내 할 수 있습니까?

+0

고전적인 방법이 도움이 될 수를 두 개의 포인터가 있고 같은 장소를 가리 키거나 서로를 통과 할 때까지 모든 문자 쌍을 검사하는 것입니다. 구두점을 지우는 것에 대해 걱정할 필요가 없습니다. 당신은'incrementPointer' 메쏘드로 알파가 아닌 문자들을 건너 뛸 수 있습니다. – gcarvelli

답변

0

나는이 당신을 도울 것입니다 얼마나 알고하지 않습니다하지만 난 그런 일 할 것 회문를 확인하기 위해 :

# to get rid of spaces to check sentences (maybe repeat for punctuation marks) 
line = line.replace(" ","") 
# create reverse string see http://stackoverflow.com/questions/931092/reverse-a-string-in-python 
reverse_line = line[::-1] 
# check if it is a palindrome 
print line == reverse_line 

희망 나는이 일을 조금