6栈和队列
#define PUSH(n) do {stack[p++] = n;} while(0)
#define POP(n) do {n = stack[--p];} while(0)
#define STACK_TOP stack[p-1]
#define STACK_ISNOT_EMPTY (p != 0)
char* removeDuplicates(char* s) {
char *stack = (char*)malloc(sizeof(char)*strlen(s)+1);
int p = 0;
int i = 0;
char c;
while(s[i] != '\0')
{
if (STACK_ISNOT_EMPTY && STACK_TOP == s[i])
POP(c);
else
PUSH(s[i]);
i++;
}
PUSH('\0');
return stack;
}最后更新于