作者:龚雄兴
单位:湖北文理学院
代码长度限制:16 KB
时间限制:80 ms
内存限制:16 MB
请编写函数,对给定的字符串,按相邻的两个相同字符可以消去的原则,在原字符串中反复消去相邻相同的字符,最后得到的字符串仍保存在原字符数组中。
输入样例1:
输入一个字符串(换行表示结束)。
abccbaca
输出样例:
本例中,先是c与c互消,然后是b与b互消,最后是a与a,最终余下ca。
ca
函数接口定义:
void fun (char *S);
/* 请在这里填写答案 */
代码如下:
void fun (char *S){
int write = -1;
int read = 0;
char ch = 0;
while(ch = S[read]){
if(write < 0){ //初始化
write = 0;
S[write] = ch;
}
else{
if(S[write] != ch) {//入栈
write++;
S[write] = ch;
}
else{ //出栈
write--;
}
}
read++;
}
write++;
S[write] = '\0';
}