题目链接:BOJ【44586】 顽皮的字母
解题思路:字符串数组遍历 水题 不过思路上还是卡住了 一开始还傻乎乎的把strlen放循环里 不是头一次了。。 后来发现一个数组不够用 然后弄了俩 又开始考虑每次循环都cpy 一想这时间耦合不还是很大。。。反正就是各种偏门歪道都想到了= =后来突发灵感 想到这法 其实就是控制下标 然后动规 勉勉强强 做题思路还是没练出来啊 顺便为L题默哀= =、
代码如下:
#include
int main()
{
int T,i,j,flag,m;
char zm[100001],z[100001];;
scanf("%d",&T);
while(T--)
{
flag=1;
scanf("%s",zm);
j=0;
for(i=0;zm[i];i++)
{
if(j==0)
z[j++]=zm[i];
else
{
if(z[j-1]%2!=0&&z[j-1]+1==zm[i]||zm[i]%2!=0&&z[j-1]-1==zm[i])
j--;
else z[j++]=zm[i];
}
}
z[j]='\0';
if(!j) printf("sad!\n");
else puts(z);
}
return 0;
}