游戏规则:输入一个只包含英文字母的字符串,
字符串中的俩个字母如果相邻且相同,就可以消除。
在字符串上反复执行消除的动作,
直到无法继续消除为止,
此时游戏结束。
输出最终得到的字符串长度。
输出:原始字符串str只能包含大小写英文字母,字母的大小写敏感,长度不超过100,
输出游戏结束后字符串的长度
备注:输入中包含非大小写英文字母是均为异常输入,直接返回0。
事例:mMbccbc输出为3
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
void RemoveWord(char *s, int idx)
{
int i, len = strlen(s);
if (len == 1 && idx == 0) {
s[0] = '\0';
}
for (i = idx; i < len - 1; i++) {
s[i] = s[i + 1];
}
s[len - 1] = '\0';
}
int GetStrLen(char *s)
{
int i, flag = 0;
int len = strlen(s);
for (i = 0; i < len - 1; i++) {
if (s[i] == s[i + 1]) {
/* 消除字母 */
//printf("rm %d,%d\n", s[i] == s[i + 1]);
RemoveWord(s, i);
RemoveWord(s, i);
flag = 1;
break;
}
}
if (flag == 0) {
return len;
}
return GetStrLen(s);
}
int main()
{
char s[100] = {0};
gets(s);
//RemoveWord(s, 1);
printf("%d\n", GetStrLen(s));
printf("s=[%s]\n", s);
}