0
votes

Algorithme pour déterminer si deux chaînes sont des palindromes à un indice spécifique

donné deux cordes, A et B, de longueur égale, trouvez s'il est possible de diviser les deux cordes au même indice, telles que la fusion de la première partie de A et la seconde une partie de b forme un palindrome. Retourner l'emplacement de la scission. Palindrome est un mot qui lit le même avant vers l'avant. Si la solution ne peut pas être trouvée, renvoyez -1.

Voici ce que j'ai jusqu'à présent xxx

ma solution renvoie -1 pour Le cas de test, bien qu'il devrait renvoyer 4

Je ne sais pas quoi changer pour vous assurer que l'index correct est renvoyé.


0 commentaires

3 Réponses :


2
votes

En fonction de votre problème, vous souhaitez fusionner la première partie d'un ( str1 ) et la deuxième partie de B ( str2 ), mais dans votre code que vous " Re fait l'inverse, il suffit de changer les tranches sur str1 et str2 : xxx

test: xxx < / pré>

sortie: xxx


0 commentaires

0
votes

Vous devez également vous inversion de vos mots, puis exécutez votre chèque de cette façon:

inverse_word = mot [:: - 1]


0 commentaires

0
votes

Vous ne prenez pas correctement la première partie de la première chaîne et la deuxième partie de la deuxième chaîne. Gardez à l'esprit que lorsque vous tranchez une chaîne:

def palindrome(str1, str2):
    if len(str1) != len(str2):
        raise ValueError('str1 and str2 should have the same length')
    for i in range(len(str1)):
        firstStr = str1[:i]
        secondStr = str2[i:]
        if isPalindrome(firstStr + secondStr):
            return i
    return -1


1 commentaires

@ SMAC89, je suis d'accord avec vous qu'il pourrait être inutile de vérifier l'égalité de str1 et str2 . Je vais mettre à jour ma réponse.