13 删除字符串中所有相邻重复项

19 阅读1分钟

题目

image.png

思路

  1. 定义一个辅助数组。

  2. 遍历原数组。

  3. 在遍历的过程中,

    • 如果辅助数组中没有字符,或辅助数组当前的字符和遍历的字符不相同,就把该字符赋值给辅助数组;

    • 否则,就表示即辅助数组中有字符,且当前字符和遍历的字符相同,就表示有重复字符。所以,删除辅助数组中的字符。

#include<stdio.h>
#include<string.h>
int main(){
	char s1[1000],s2[1000];
	gets(s1);
	int len1,i,j=0;
	len1=strlen(s1);
	for(i=0; i<len1; i++){
		if(j==0 || s1[i]!=s2[j-1])
			s2[j++]=s1[i];
		else 
			j--;  
	}
	s2[j]='\0';
	puts(s2);
	return 0;
}