문자열이 스택을 사용하는 회문인지 확인하기 위해 다음 코드를 작성했습니다. 문자열에 두 개의 동일한 연속 문자가있을 때마다 정확한 출력을 얻지 못합니다. 예를 들어 코드에서는 exe
이 회문입니다. 그러나 ee
은 회문이 아닙니다.스택을 사용하여 문장 검색하기
int is_palindrome(char str[]) {
int j, top = -1;
char stk_item, s[30];
for (j = 0; j < strlen(str); j++)
s[top++] = str[j];
for (j = 0; j < strlen(str); j++) {
stk_item = s[--top];
if (str[j] != stk_item) return 0; // is not a palindrome
}
return 1; // is a palindrome
}
어떤 문제 일 수 있습니까?
스택 오버플로는 군중 기반의 디버거가 아닙니다. 도움이 될 수 있습니다. http://ericlippert.com/2014/03/05/how-to-debug-small-programs/ –