NOV 14 PRPLAN- wonder why this is not totally correct.

#include<stdio.h>
#include<string.h>
int main()

{
    int t,l,i,palin,k;
    
    scanf("%d",&t);
    while(t--)
    {
        char s[100010],a[100000];
        scanf("%s",s);
        k=l=strlen(s);
        --l;                ///decrement in 'l' so that it points correctly at the char(l-1 not required)
        palin=0;
        for(i=0;i<k/2;i++) //remember to maintain an 'l' decrement
        {
            if(s[i]==s[l])
            {
                --l;
                continue;
            }
            else if(palin==0)
            {
                palin=1;            ///changing palin's value, hence one time entry
                if(s[i]==s[l-1])    //ababca
                {
                    l=l-2;
                    continue;
                }
                else if(s[i+1]==s[l])//acbaba
                {
                    ++i;
                    --l;
                    continue;
                }
                else
                {
                    palin=3;
                    break;  ///break coz no point in lookin
                }
            }
            else
            {
                palin=3;
                break;
            }
        }
        if(palin==0)
        {
            if(k%2==1)
            palin=1;
            else
            {
                l=0;
                for(i=0;i<k;i++)
                {
                    if(i==k/2)
                    continue;
                    a[l]=s[i];
                    ++l;
                }
                //strcpy(s,a);
                //strrev(a);
                if(strcmp(a,strrev(a))==0)
                palin=1;
            }
        }
        if(palin==1)
        printf("YES\n");
        else
        printf("NO\n");
    }
    return 0;
}