» »

Java-Najdaljše skupno podzaporedje

Java-Najdaljše skupno podzaporedje

tx-z ::

Napisal sem program ki mi poišče najdaljše skupno podzaporedje dveh nizov, vendar je zelo počasn. Program sem že v osnovi tako napisal da se ga ne da bolj optimizirati, zato bi ga rad napisal na drug način.

Imam sicer pseudo kodo tega programa vendar ga ne znam napisati.

Najdaljše Skupno Zaporedje = NSZ

NSZ(X(1...i), Y(1..j))
{
če je X ali Y prazno zaporedje
__vrni prazno zaporedje
če je xi = yj
__vrni NSZ(X(1...i-1), Y(1..j-1)) + xi
sicer
__vrni max(NSZ(X(1...i), Y(1...j-1)), NSZ(X(1...i-1), Y(1...j)))
}

V opisu velja, da je X(1...i) zaporedje znakov x1, x2, ... , xi. Podobno velja seveda tudi za zaporedje Y. Znak + je mišljen kot konkatenacija. Funkcija max vrne daljšega od obeh zaporedij.



A bi lahko kdo to prepisu v javo? Pomožnosti danes, ker moram jutri oddat(sicer ni pomembno če nardim ampak bi dobil več točk).

Hvala že vnaprej!
tx-z
  • spremenilo: tx-z ()

PaX_MaN ::

Evo, nekaj na hitro:

static String NSZ(String X, String Y)
	{
		if(X == null || Y == null || X.length() == 0 || Y.length() == 0)
			return "";

		if(Character.toString(X.charAt(X.length()-1)).equals(Character.toString(Y.charAt(Y.length()-1))))
		{
			return NSZ(X.substring(0, X.length()-1), Y.substring(0, Y.length()-1)) +String.valueOf(X.charAt(X.length()-1));
		}

		String first = NSZ(X,  Y.substring(0, Y.length()-1)),
		second = NSZ(X.substring(0, X.length()-1), Y);

		if (first.length() >= second.length())
			return first;
		else
			return second;
	}

tx-z ::

Super! Sm sicer že imel napisan vse if stavke,ampak nisem vedel kako klicati rekurzivno, tako da hvala!! ;) I owe you one :))

Si morm zdele ogledat kako to dejansko deluje...Kr ročno na papirju hehe;)
tx-z

Zgodovina sprememb…

  • spremenilo: tx-z ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[C++] Ponavljanje črk v stringu

Oddelek: Programiranje
141384 (1170) darkkk
»

[javaScript] Preverjanje formata zapisa EMŠO

Oddelek: Programiranje
132939 (2559) win64
»

C++ in števke

Oddelek: Programiranje
111307 (1114) Tutankhamun
»

Java-Izdelek-Nujno

Oddelek: Programiranje
71507 (1279) iggy
»

malo pomoči

Oddelek: Programiranje
91060 (894) ERGY

Več podobnih tem