def pocet_palindromov(retazec):
    '''
    Spocita palindromicke podretazce v retazci.

    :param retazec: vstupny retazec na analyzu
    :type retazec: str

    :return: celkovy pocet palindromov
    :rtype: int
    '''

    retazec = retazec.replace(' ', '')
    pocet = 0

    for stred_idx in range(len(retazec)):
        pocet += spocitaj(retazec, stred_idx, stred_idx)       # palindromy neparnej dlzky
        pocet += spocitaj(retazec, stred_idx, stred_idx + 1)   # palindromy parnej dlzky

    return pocet

def spocitaj(retazec, lavy_idx, pravy_idx):
    '''
    Spocita palindromicke podretazce rozsirovanim okolo stredu daneho indexmi (lavy_idx, pravy_idx).

    :param retazec: vstupny retazec na analyzu
    :type retazec: str

    :param lavy_idx: zaciatocny index stredu
    :type lavy_idx: int

    :param pravy_idx: koncovy index stredu
    :type pravy_idx: int

    :return: pocet palindromov najdenych z tohto stredu
    :rtype: int
    '''

    pocet = 0

    while lavy_idx >= 0 and pravy_idx < len(retazec) and retazec[lavy_idx] == retazec[pravy_idx]:
        pocet += 1
        lavy_idx -= 1
        pravy_idx += 1

    return pocet

print(pocet_palindromov("a"))
print(pocet_palindromov("aba"))
print(pocet_palindromov("abba"))
print(pocet_palindromov("v elipse spi lev"))