Rekursion 2: Palindrom

Detta program kollar om ett av användaren angivet ord är ett palindrom, dvs läses likadant framlänges som baklänges, som exempelvis abba, rör osv.
Till detta ändamål används en funktion pal(String s), av typen boolean som returnerar true eller false, och där strängen s är vårt ord.
Funktionen kollar strängens första och sista bokstäver med hjälp av charAt, och anopar med rekursion sig själv igen, denna gång med ett s som saknar de första och sista bokstäverna som tagits bort med hjälp av substring().
Om alla "spegelvända" bokstäver slutligen motsvarar varandra tills det är högst en bokstav kvar, returneras true till huvudprogrammet, annars returneras false.
import java.io.*;
class palindrom {
public static boolean pal(String s)
throws Exception
{
if ( s.length()>1)
{
if (s.charAt(0)==s.charAt(s.length()-1))
{
return pal(s.substring(1,s.length()-1));
}
}
if ( s.length()<=1)
{
return true;
}
return false;
}
public static void main (String args[])
throws Exception
{
InputStreamReader isr;
BufferedReader keyb;
isr = new InputStreamReader(System.in);
keyb = new BufferedReader(isr);
System.out.print("Skriv in det ord som ska kollas: ");
String inmatning;
inmatning=keyb.readLine();
if ( pal(inmatning) )
{
System.out.print(inmatning + " är en palindrom");
}
else
{
System.out.print(inmatning + " är inte en palindrom");
}
}
}

Tillbaks till huvudsidan

email: Alireza.Niai_nouri.2077@student.uu.se