Getting Wrong Answer Graph problem

Hi, need help…what ever test case i have tried i am getting crct answer in local …but it is giving WA on submission…Can anyone help me what i am missing or any test case where my code result and expected results are different?
Problem:

solution link : CodeChef: Practical coding for everyone

solution:

from sys import setrecursionlimit as srl
srl(10**8)
s=str(input())
l=len(s)
p=10**6
f=False
d=[10**6]*l
d[l-1]=0
d[l-2]=1
def dfs(x,r=-1):
    global s,l,p,f
    if x==-1 or x>=l or x==r:
        return p
    if s[x]==s[r] and r>x:
        return d[r]
    if s[x]==s[r] and x>r and r!=-1:
        return d[x]
    if r>x:
        return d[x]
    q=p
    if s[x] in s[x+1:]:
        j=l-1
        while j>x:
            if s[j]==s[x]:
                q=min(dfs(j,x),q)
            j-=1
        
    A=p
    B=p
    if x>r:
        A=dfs(x+1,x)
        B=dfs(x-1,x)
    elif r>x:
        B=dfs(x-1,x)
    d[x]=min(1+min(min(A,B),q),d[x])
    return d[x]

for i in range(l-3,-1,-1):
    dfs(i)
if l==1:
    print(0)
else:
    print(d[0])

any testcase help pls