凑个热闹,犹记得当初只A了两题
public static String checkString(String str)
{
if(str==null||str.length()==0)
{
return str;
}
char[] strArray=str.toCharArray();
boolean[] flag=new boolean[strArray.length];
int curIndex=0;//当前嗅探位置
while(curIndex<strArray.length)
{
//最后一个字符或者和后一个字符不相同
if((curIndex==strArray.length-1)||strArray[curIndex]!=strArray[curIndex+1])
{
curIndex++;
}
else
{
//连续三个字符
int postIndex=curIndex+2;
while(postIndex<strArray.length&&strArray[postIndex]==strArray[curIndex])
{
flag[postIndex]=true;
postIndex++;
}
//保证不越界
if(postIndex>=strArray.length-1)
{
curIndex=strArray.length;
}
else
{
while(strArray[postIndex]==strArray[postIndex+1])
{
flag[postIndex+1]=true;
postIndex++;
}
}
curIndex=postIndex;
}
}
for(int i=0;i<strArray.length;i++)
{
if(flag[i])
{
strArray[i]='#';
}
}
return String.valueOf(strArray).replaceAll("#","");
}