Palindrom Stack
Jeg har en opgave der burde være simpel, men jeg kan ikke lige finde ud af det ;>Den lyder på:
Et palindrom er som bekendt et ord der staves ens forfra og bagfra.
F.eks. ABBA, OTTO, KAJAK, 123321.
Brug nu følgende regler:
1. Læs char en efter en og smid dem på en stak. Så er denne stak nu ordet i reverse.
2. Når alle chars er læst, så overfør halvdelen fra den førstnævnte stak til en anden stak.
3. Hvis der var et ulige antal chars så fjern yderligere en char fra den første stak.
4. Test om de to stakke er ens char for char. Hvis ja så et Palindrom
Jeg har så fået læst det ind i en stack, og er kommet til 2eren- jeg ved ikke lige hvordan man tager halvdelen og hvordan man tester som de er ens.
Mit lille program ser sådan her ud indtil videre :
static void Main(string[] args)
{
string ord = "123321";
Stack stak1 = new Stack();
Stack stak2 = new Stack();
for (int i = 0; i < ord.Length; i++)
{
string temp = ord.Substring(i, 1);
stak1.Push(temp);
}
udskriv(stak1);
}
static void udskriv(Stack st)
{
foreach (string tmp in st)
{
Console.WriteLine("{0}", tmp);
}
Console.ReadLine();
}
