그래서이 사이트와 다른 사람들을 둘러보고 파이썬에서 문자열을 반복하는 방법에 대해 알아 보았습니다. 특정 부분 문자열을 찾아 역순으로 검색하여 두 개가 같은 순서인지 확인합니다. Palindrome을 얻으십시오. 테스트 케이스 중 일부는 인덱싱을 통해 찾는 방법에 대해 혼란스럽고 혼란 스럽기 때문에 문제입니다.파이썬 회귀선을 찾기 위해 문자열 반복하기
이 모든 작동 내 코드이지만,이 테스트 케이스 :
def countPalindromes(s):
count = 0
firstindex = 0
lastindex = len(str)-1
while firstindex != lastindex and firstindex <= lastindex:
ch1 = s[firstindex:lastindex]
ch2 = s[lastindex:firstindex:-1]
if ch1 == ch2:
count +=1
firstindex +=1
lastindex -=1
return count
이 코드는 다음 회문 작동 : "레이싱 카", "", 및 "abqc을". 이 Palindromes "aaaa"및 "abacccaba"에는 작동하지 않습니다.
"aaaa"에는 6 개의 문장이 있고 "abacccaba"에는 8 개의 문장이 있습니다. 이것은 내 문제가 발생하는 곳이며, 나는 그것을 파악할 수 없다. "aaaa"를위한 6 개의 문장을 위해 나는 각각 두번 aaaa, aaa, aa를 얻습니다. "abacccaba"는 8 가지 문장으로, 나는 abacccaba, bacccab, accca, ccc, aba, aba를 얻는다.
나는 이것이 혼란스러운 질문이지만, "aaaa"는 2 개, "abacccaba"는 4 개로 제한되어 있기 때문에 문제를 해결하는 방법을 놓쳤습니다. 어떻게 하위 문자열을 잘라내어 이러한 값을 얻을 수 있는지 생각해보십시오.
미리 감사드립니다.
그래, 나는 누락 된 일부 합계를 발견 한 유일한 사람이 아니다. 나는 그들이 2보다 커야한다고 언급 했어야했는데, 아직 실종되었다.불행히도 이것은 코드 주자 중 하나에 있으므로 기대되는 결과물이 필요합니다. 테스트 케이스가 정확하다는 것을 알기 위해 제공 한 내용을 살펴보고 해결해 보겠습니다. –
한 가지 더 :'firstindex! = lastindex와 firstindex <= lastindex :'는''firstindex로 단순화 될 수 있습니다. –
아, 감사합니다! –