[c ] for at kontrollere, om teksten er en palindrom

S

sylwia18_18

Guest
Jeg har et problem.Jeg skriver et program i C , som vil kontrollere, om en given tekst er et palindrom.Hvis dette ikke er den længste palindromu look fra det første tegn i teksten.For eksempel, kajak "" - er en palindrom, "Cactus" - er ikke en palindrom, men den indeholder den længste palindrom - "kak".
Hidtil har jeg så meget:

Code:

# Inkluder <iostream.h>

# Inkluder <conio.h>

using namespace std;int main ()

(

int x, y = 0;streng tekst;

domstol <<"\ n Indtast en streng:";

cin>> tekst;

x = tekst.length ();

x = x-1;

til

(

if (tekst.at (x) == tekst.at (s))

(y ;

x -;

)

ellers ret <<"er IKKE en palindrom" <<endl;)

while (x! = y);

domstol <<"YES er en palindrom" <<endl;system ("PAUSE");

return 0;

Getcha ();

)

 
Det minder mig om den snart denne løsning:

Hver palindrom har et ulige antal tegn.Så:

Den første betingelse er, at ordet palindrom kontrollere, om det er et ulige antal tegn.Så start fra midten og går to indikatorer på ydersiden ser, om retten er den samme ting til venstre.

Hvis du går hele ordet er en palindrom hvis det nu er fra 2 point til 2 fra slutningen af den længste gentage søgningen palindromu
 
Desværre kan du ikke kontrollere betingelsen om oddness af bogstaverne, fordi der er palindromes med et ulige antal af bogstaver, for eksempel ordet Anna.Desuden taler vi om at kontrollere, om teksten er en palindrom og ikke ordet, fordi der er flere ord palindromes, såsom "hoppe har en lille side."Jeg ved, at han har et ulige antal af bogstaver, men der er absolut dem, der har et lige antal.
For mig er det nemmeste måde at få vist teksten i en over at skabe et andet brev, hvori mieliśbyśmy omvendt rækkefølge.Sammenlign.Hvordan fit er et palindrom.Hvordan ikke at afskære den sidste af de første bogstav eller et ord med ham først, for det andet at sammenligne, som vi har passer mindre palindrom.Hvordan gør det igen efter literce ucinami og så cirkel.
 
Lad ordet er k bogstaver
Code:i = 1 j = kwhile (ji> = 0 eller test)

(

kontrollere, om de tegn i "i" og "j" er lig

hvis ord [j] <> ordet = 0 er en test

)

 
forbedret i stillingen ovenfor.:)
Testen er en betingelse ud af løkken før den når slutningen af ordet
 
Jeg har ikke forsøgt at gøre det, men du kan prøve dette:
1:aSkriv en funktion "baglæns" vende rækkefølgen af tegn i teksten
2:aSammenlign teksten med resultatet af "baglæns" for teksten.
3:eHvis resultatet i s. 2er negativ, så check for den første streng af tegn ...
 
Denne funktion søger for palindrom kun hvis det er det hele ordet.
 
Jeg var på udkig efter, hvordan man skriver en Palindrom og jeg var nysgerrig tutorial på YouTube:Link
 
Minut og en halv fjernet fra livet:
Code:bool is_palindrom (char * ord)

(

int it_num = strlen (word);

int i = it_num / 2;

while (i -)

if (ord : = ordet [n - i - 1]) return false;

return true;

)

 

Welcome to EDABoard.com

Sponsor

Back
Top