palindromeStack.c - OpenLearning
//palindromeStack.c
//Unofficial Practice Practical Exam
//Created by Michael Simarta
//Your Name Here
//Multi-file Compilation: gcc -Wall -Werror -O -o PROGRAMNAME palindromeStack.c Stack.c
 
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <string.h>
#include "Stack.h"
 
#define FALSE 0
#define TRUE 1
#define START_LETTER 'a'
#define END_LETTER 'z'
 
void testCase(void);
int palindromeStack (char* string);
 
int main (int argc, char *argv[]) {
    testCase();
    return EXIT_SUCCESS;
}
 
int palindromeStack (char* string) {
    //Hint: You may need more than 1 stack.
    //YOUR CODE HERE
    int isPalindrome = TRUE;

    Stack stringIn = newStack ();

    int count = 0;
    while (count <= strlen (string)) {

        if ((string[count] <= END_LETTER) &&
            (string[count] >= START_LETTER)) {

            push (stringIn, string[count]);
        }
        count++;
    }

    count = 0;
    while (count < strlen (string)) {

        if ((string[count] <= END_LETTER) &&
            (string[count] >= START_LETTER) &&
            (length (stringIn) > 0)) {

            if (top (stringIn) != string[count]) {
                isPalindrome = FALSE;
            }

            pop (stringIn);
        }

        count++;
    }

    free (stringIn);

    return isPalindrome;
}
 
void testCase(void) {
 
    assert (palindromeStack("kayak.") == TRUE);
    assert (palindromeStack("puzzlequest") == FALSE);
    assert (palindromeStack("is addo odd as i?") == TRUE);
    assert (palindromeStack("canoe") == FALSE);
    assert (palindromeStack("eevee") == TRUE);
    assert (palindromeStack("awesome") == FALSE);
 
    //ADD MORE TESTS
    assert (palindromeStack("asdfjkjkjkjfdsa") == TRUE);
    assert (palindromeStack("a;dlskjf;kaljsdk;flj") == FALSE);
    assert (palindromeStack("aaaaaaaaaaaaaa") == TRUE);
    assert (palindromeStack("what is going on here") == FALSE);
    assert (palindromeStack("Ilik2ec1ode4edoc!eki5lI") == TRUE);
    assert (palindromeStack("cool cool") == FALSE);

    printf("All tests passed, you are Awesome!\n");
}

Download file: palindromeStack.c (2.0 KB)

Comments

Chat