给定一个长度为n的字符串s,字符串由小写字母a…z和大写字母A…ZZ组成
小明要对这个字符串进行操作,他会从头到尾检查这个字符串,如果发现:
s[i]是小写字母,s[i+1]是s[i]对应的大写字母(1<=i<=n);
s[i]是大写字母,s[i+1]是s[i]对应的小写字母(1<=i<=n);
就会把s[i],s[i+1]这两个字符都删掉
小明会重复这个操作,直到字符串不再改变
你需要给出处理完成的字符串
输入格式:
第一行一个整数n
接下来一行一个长度为n的字符串s
输出格式:
输出最后处理完成的字符串,有可能是空串
样例输入:
8
AaAAbcCB
样例输出:
AA
int check(char s,char str)
{
if(s>='a' && s<='z')
{
s = s - 32;
if(str==s)
{
return 1;
}
else
{
return 0;
}
}
else
{
s = s + 32;
if (str == s)
{
return 1;
}
else
{
return 0;
}
}
}
int main()
{
int n = 0, top = 0;
char s[10001], str[100001];
scanf("%d%s", &n,str+1);
for(int i = 1;i<=n;i++)
{
if(top && check(s[top],str[i])) //栈中非空且返回值为真
{
--top;
}
else
{
s[++top] = str[i];
}
}
for(int i = 1;i<=top;i++)
{
printf("%c", s[i]);
}
}