All pastes #519740 Raw Edit

Mine

public java v1 · immutable
#519740 ·published 2007-05-29 19:09 UTC
rendered paste body
class Reverse {	/**	 * Algoritmen virker meget simpelt ved at vi hele	 * tiden splitter vores streng op på midten, indtil	 * vi når en streng på længde 2 eller under. Alle	 * de dele vi får, samles derefter i omvendt rækkefølge,	 * hvorved vi opnår at stregen bliver reversed.	 *	 *     La|rs        La|rs       sr|aL	 *     /  \   ->    /  \   ->	 *    La  rs       aL  sr     	 *	 */	private static String recursiveReverse(String s) {		if (s.length() > 2) {			int split = s.length()/2;			String left = recursiveReverse(s.substring(0,split));			String right = recursiveReverse(s.substring(split));			return right.concat(left);		} else if (s.length() == 2) {			return s.substring(1).concat(s.substring(0,1));		} else {			return s;		}	}	/**	 * Algoritmen kørt på strengen "Lars":	 *	 * Lars  =>  ars L  =>  rs aL  =>  s raL  =>  sraL	 * ----^     ---^       --^        -^	 * 	 * Algoritmen virker ved at vi hele tiden flytter det	 * foreste tegn i stregen frem til en markør (length).	 * Denne markør starter med at pege på slutningen af	 * stregen (s.length()) og tælles derefter ned indtil	 * den når nul, hvorefter vi er færdige.	 */	private static String linearReverse(String s) {		for (int length = s.length(); length > 0; length--) {			s = s.substring(1,length) // andet tegn op til length markøren			     .concat(s.substring(0,1)) // første tegn			     .concat(s.substring(length)); // resten af stregen		}		return s;	}}