凑个热闹,犹记得当初只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("#","");
    }