algorytm.org

Implementacja w Java



Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Wyszukiwanie liczby palindromów w tekście. - Implementacja w Java
Ocena użytkownikóww: *****  / 1
SłabyŚwietny
Nadesłany przez Tomasz Lubiński, 09 maja 2007 01:00
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.

Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.

Palindromy.java:
//Wyszukiwanie palindromow w tekscie
//Rafal Swietlicki
//Implementacja w Java Tomasz Lubinski
//www.algorytm.org

public class Palindromy {

	public static int f1(String s)
	{
	        int i, j;
	        int n = s.length();
	        int wynik=n;
	        boolean m[][] = new boolean[n][n];
	        for(i=0;i<n-1;i++)
	                m[i+1][i]= true;
	        for(j=0;j<n;j++)
	        {
	                m[j][j]=true;
	                for(i=j-1;i>=0;i--)
	                {
	                        m[i][j]=m[i+1][j-1] && s.charAt(i)==s.charAt(j);
	                        if (m[i][j])
	                        {
	                           wynik++;
	                        }
	                }
	        }
	        return wynik;
	}

	public static int f2(String s)
	{
	        int n=s.length();
	        int T[][] = new int [n+1][n+1];
	        for(int i=0;i<n;i++)
	        {
	                T[i][i]=1;
	                for(int j=i-1;j>=0;j--)
	                {
	                        T[j][i]=T[j+1][i]+1;
	                        for(int k=j+1;k<=i;k++)
	                                if(s.charAt(j)==s.charAt(k))
	                                        T[j][i]+=T[j+1][k-1]+1;
	                }
	        }
	        return T[0][n-1];
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
        String slowo;
        System.out.println("Podaj slowo: ");
        slowo = Console.readString();
        System.out.println("Ilosc spojnych palindromow w slowie " + slowo + " wynosi " + f1(slowo));
        System.out.println("Ilosc niespojnych palindromow w slowie " + slowo + " wynosi " + f2(slowo));
	}

}
Dodaj komentarz