zuma

邓俊辉老师数据结构--zuma编程题

天大地大妈咪最大 提交于 2019-11-27 07:31:10
题目: https://dsa.cs.tsinghua.edu.cn/oj/problem.shtml?id=1143 第一次提交95,居然是case2错了, 仔细检查一下,发现创建链表出错了,没有考虑开始时是空链表的情况,检查完后就ok了。 100分代码如下, #include <cstdio> #include<string.h> using namespace std; struct zuma{ char a; zuma* pre; zuma* next; }*head,*tail,*pos; int reduce(char a1){ if(pos==tail)return 0; zuma *p=pos,*q=pos,*r; int i=0,j=0; while(p->pre&&p->pre->a==a1){p=p->pre;i++;} while(q->next&&q->next->a==a1){q=q->next;j++;} if(i+j>1){ r=p; p=p->pre; q=q->next; p->next=q; q->pre=p; if(p!=head)pos=p; else pos=p->next; while(r!=q){p=r;r=r->next;if(p!=head||p!=tail)delete(p);} return 1; } return 0; }