La création d'une méthode récursive pour Palindrome
Je suis en train de créer un Palindrome programme en utilisant la récursivité à l'intérieur de Java, mais je suis coincé, c'est ce que j'ai à ce jour:
public static void main (String[] args){
System.out.println(isPalindrome("noon"));
System.out.println(isPalindrome("Madam I'm Adam"));
System.out.println(isPalindrome("A man, a plan, a canal, Panama"));
System.out.println(isPalindrome("A Toyota"));
System.out.println(isPalindrome("Not a Palindrome"));
System.out.println(isPalindrome("asdfghfdsa"));
}
public static boolean isPalindrome(String in){
if(in.equals(" ") || in.length() == 1 ) return true;
in= in.toUpperCase();
if(Character.isLetter(in.charAt(0))
}
public static boolean isPalindromeHelper(String in){
if(in.equals("") || in.length()==1){
return true;
}
}
}
Quelqu'un peut-il fournir une solution à mon problème?
Pouah.. 1-espace tiret. C'est comme ne pas l'indentation. Mieux utiliser les touches 2, 4 ou 8 places (ou onglets) pour le retrait. Oh, et s'il vous plaît utiliser le "format de code" la prochaine fois, de sorte qu'il s'affiche correctement.
Et où est la récursion?
devoirs de l'étiquette est manquante
De nombreux doublons ou quasi-doublons à partir d'une SORTE de recherche de palindrome: stackoverflow.com/search?q=palindrome
Collez d'abord votre code, puis sélectionnez-le, puis utilisez le Exemple de Code bouton.
Et où est la récursion?
devoirs de l'étiquette est manquante
De nombreux doublons ou quasi-doublons à partir d'une SORTE de recherche de palindrome: stackoverflow.com/search?q=palindrome
Collez d'abord votre code, puis sélectionnez-le, puis utilisez le Exemple de Code bouton.
OriginalL'auteur Nightshifterx | 2010-12-06
Vous devez vous connecter pour publier un commentaire.
Ici, je suis coller du code pour vous:
Mais, je suggère fortement que vous savez comment cela fonctionne,
de votre question , vous êtes totalement illisible.
Essayez de comprendre ce code. Lire les commentaires de code
Si vous êtes en utilisant pour la première fois que je vous suggère d'accepter de répondre concept, vous devez accepter la réponse que vous trouvez les plus utiles
org, j'ai mis en place votre booléen dans mon code et édité, et il a couru, mais seulement "midi" retourné comme un vrai palindrome, mais ne serait pas "madame, je suis Adam" ou "asdfghfdsa" aussi vrai retour? ils sont tous deux rentrés faux.
Parce que ces deux ne sont pas palindrome
Ahhhh ok je viens de relire la def d'un vrai Palindrome merci pour l'aide. Comment dois-je faire "accepter de répondre concept" d'en parler?
OriginalL'auteur Jigar Joshi
Bien:
Je ne vais pas préciser plus clairement que pour le moment, car j'ai l'impression que c'est les devoirs, en effet, certains peuvent considérer que l'aide ci-dessus comme trop (je ne suis certainement un peu hésitante moi-même). Si vous avez des problèmes avec les conseils ci-dessus, la mise à jour de votre question de montrer à quel point vous avez.
"entrez le code ici" j'ai copier coller mon code il et seule la première ligne est codée.
Désolé j'ai raté ce que vous avez dit ce n'est pas de Devoirs, c'est en fait un ancien laboratoire de mon collège classe java, il n'y a pas toujours assez de temps pour le terminer, maintenant, je suis légèrement derrière, assis dans la bibliothèque d'essayer de l'obtenir.
Qui sonne comme devoirs à la maison pour moi 🙂 pour la mise en forme du code, collez le code, puis sélectionnez-la et appuyez sur le bouton (ou la combinaison de touches Ctrl-K).
code de mise en forme d'alternative: il suffit de tiret à chaque ligne de code supplémentaire de 4 espaces (ce qui
Ctrl-K
n')OriginalL'auteur Jon Skeet
Peut-être vous avez besoin de quelque chose comme cela. Pas testé, je ne suis pas sûr de la chaîne d'index, mais c'est un point de départ.
in.equals(" ")
? (Dans ce cas, la longueur est< 2
de toute façon.)J'ai gardé dans.equals(" ") parce que c'était son raisonnement (voir le code en question). Inutile, mais il a demandé à propos de l'utilisation de la méthode récursive.
Vous avez -2 dans votre fonction récursive, une autre affiche a -1. Qui est le meilleur? Moi, personnellement, je continue à faire des "vrai" avec ce code, vous ne savez pas pourquoi.
OriginalL'auteur mauretto
Je pense, la récursivité n'est pas la meilleure façon de résoudre ce problème, mais on récursif de la façon dont je vois ici est indiqué ci-dessous:
OriginalL'auteur Roman
Ici est mon aller à:
OriginalL'auteur aioobe
OriginalL'auteur user2678345
Certains de ces codes sont de chaîne lourde. Au lieu de créer des sous-chaîne qui crée un nouvel objet, il nous suffit de passer sur les index dans les appels récursifs comme ci-dessous:
OriginalL'auteur Ace
Voici trois implémentations simples, d'abord le oneliner:
C'est bien sûr assez lent car il crée un stringbuffer et l'inverse, et l'ensemble de la chaîne est toujours vérifié nomatter si c'est un palindrome ou non, voici donc une mise en œuvre qui vérifie uniquement la quantité nécessaire de caractères et n'est en place, donc pas de supplément stringBuffers:
Et de manière récursive:
OriginalL'auteur HaskellElephant
OriginalL'auteur brian maphosa
Essayez ceci:
OriginalL'auteur Naresh
OriginalL'auteur Naresh
OriginalL'auteur Karthik N S
Ici est une méthode récursive qui ignore les caractères spécifié:
L'utiliser comme ceci:
Il ne fait pas de sens pour inclure les cas d'insensibilité dans la méthode récursive, car il ne doit être fait qu'une fois, sauf si vous n'êtes pas autorisé à utiliser le
.toLowerCase()
méthode.OriginalL'auteur dansalmo
il n'y a pas de code, plus petite:
si vous voulez vérifier quelque chose:
LOL B]
OriginalL'auteur Devil_Dj
Cette solution n'est pas sensible à la casse. Ainsi, par exemple, si vous avez le mot suivant : "adinida", puis vous obtiendrez vrai si vous n' "Adninida" ou "adninida" ou "adinidA", qui est ce que nous voulons.
J'aime @JigarJoshi réponse, mais le seul problème avec son approche est qu'il vous donnera des faux mots qui contient des casquettes.
OriginalL'auteur bangbang
Palindrome exemple:
Appelé par:
Impression sera vrai si palindrome, permet d'imprimer false sinon.
Si la longueur de la chaîne est de 0 ou de 1(pas plus de chaîne à vérifier), le retour de vrai, comme le cas de base. Ce cas de base sera visé par l'appel de fonction juste avant cette. Puis comparer pour voir si la première et la dernière lettre sont égaux, en coupant la première et la dernière lettre chaque fois que la fonction est appelée récursivement.
C'est la mise à jour du palindrome, représente maintenant le cas des différences et des caractères spéciaux @mascoj
avez-vous le vérifier?
OriginalL'auteur David Rifkin
Voici le code pour palindrome vérifier sans créer de nombreuses chaînes de
OriginalL'auteur Dheeraj Kumar Gopali
public class PlaindromeNumbers {
}
OriginalL'auteur taha rafi
OriginalL'auteur J.R
Solution Simple
2 Scénario --(pair ou Impair) longueur de la Chaîne)
Condition de Base& Algo récursif(ch, i, j)
i==j //même len
si i< j recurve appel (ch, i +1,j-1)
else return ch[i] ==ch[j]//Extra condition de base pour les vieux de la longueur
OriginalL'auteur jatin Goyal
pour vous de réaliser que vous n'avez pas seulement besoin de savoir comment la récursivité fonctionne, mais vous avez aussi besoin de comprendre la méthode de Chaîne.
voici un exemple de code que j'ai utilisé pour l'atteindre: -
OriginalL'auteur kaka musili