Problem p03569 (python)

Fixed submission:
from collections import deque

s = input()
s_list = deque(list(s))

x_count = 0
flag = True
while len(s_list) > 1:

    s_head = s_list.popleft()
    s_tail = s_list.pop()

    if s_head == s_tail:
        continue
    elif s_head == "x":
        x_count += 1
        s_list.append(s_tail)
        continue
    elif s_tail == "x":
        x_count += 1
        s_list.appendleft(s_head)
        continue
    else:
        flag = False
        break

if flag:
    print(x_count)
else:
    print(-1)

Buggy submission (verdict: Runtime Error):
import collections

s = input()
c = collections.Counter(s)

flag = True
odd_count = 0
for char, times in c.items():
    if char == "x":
        continue

    if times % 2 == 0:
        continue

    odd_count += 1
    odd_char = char
    if odd_count >= 2:
        flag = False
        break

if flag:
    x_count = 0

    if odd_count == 0:
        s_split = s.split("x")
    else:
        s_split = s.split(odd_char)

    s_form = s_split[0]
    s_latt = s_split[1]
    
    s_form_rev = collections.deque(s_form[::-1])
    s_latt = collections.deque(s_latt)

    while len(s_form_rev) > 0 or len(s_latt) > 0:
        if len(s_form_rev) == 0:
            for char in s_latt:
                if char == "x":
                    x_count += 1
                else:
                    flag = False
                    break
            break
        elif len(s_latt) == 0:
            for char in s_form_rev:
                if char == "x":
                    x_count += 1
                else:
                    flag = False
                    break
            break

        if s_form_rev[0] == s_latt[0]:
            s_form_rev.popleft()
            s_latt.popleft()
            continue

        if s_form_rev[0] == "x":
            s_form_rev.popleft()
            x_count += 1
            continue

        if s_latt[0] == "x":
            s_latt.popleft()
            x_count += 1
            continue

        flag = False
        break

if flag:
    print(x_count)
else:
    print(-1)

Buggy submission (verdict: Runtime Error):
import collections

s = input()
c = collections.Counter(s)

flag = True
odd_count = 0
for char, times in c.items():
    if char == "x":
        continue

    if times % 2 == 0:
        continue

    odd_count += 1
    odd_char = char
    if odd_count >= 2:
        flag = False
        break

if flag:
    x_count = 0

    if odd_count == 0:
        s_split = s.split("x")
    else:
        s_split = s.split(odd_char)

    s_form = s_split[0]
    s_latt = s_split[1]
    
    s_form_rev = collections.deque(s_form[::-1])
    s_latt = collections.deque(s_latt)

    while len(s_form_rev) > 0 or len(s_latt) > 0:
        if len(s_form_rev) == 0:
            for char in s_latt:
                if char == "x":
                    x_count += 1
                else:
                    flag = False
                    break
            break
        elif len(s_latt) == 0:
            for char in s_form_rev:
                if char == "x":
                    x_count += 1
                else:
                    flag = False
                    break
            break

        if s_form_rev[0] == s_latt[0]:
            s_form_rev.popleft()
            s_latt.popleft()
            continue

        if s_form_rev[0] == "x":
            s_form_rev.popleft()
            x_count += 1
            continue

        if s_latt[0] == "x":
            s_latt.popleft()
            x_count += 1
            continue

        flag = False
        break

if flag:
    print(x_count)
else:
    print(-1)