2011-02-16 — Tobias Hill
Vi har det stora nöjet att presentera vinnnaren i Citerus programmeringstävling i anslutning till JFokus 2011, nämligen Carin Lidmar som med sitt bidrag väckte juryns förundran och intresse.

Av totalt 109 svar har nu juryn korat Carin Lidmars bidrag som den vinnande lösningen i Citerus programmeringsutmaning. Juryns motivering lyder:
"Ensam i sitt slag, en av de snabbaste, mycket koncis och har väckt både förundran och intresse hos oss..."
Vi ber att få gratulera Carin som i hård konkurrens välförjänt har kammat hem äran och en iPad. Grattis!
Carin Lidmars vinnande lösning
public class CiterusChallenge {
static String[] substrings =
{"TDD", "DDD", "DI", "DO", "OO", "UI",
"ANT", "CV", "IOC", "LOC", "SU", "VO"};
public static void main(String[] args) {
System.out.println(removeSubstringsToTheRight(
"VOCDIITEIOCRUDOIANTOCSLOIOCVESTAIOCVOLIOCENTSU", 0));
}
public static String removeSubstringsToTheRight(String s, int start) {
int minimum = s.length();
String result = s;
for (String substr : substrings) {
int i = s.indexOf(substr);
while (i >= 0) {
if (i + substr.length() > start) {
String newString = s.substring(0, i) +
s.substring(i + substr.length());
newString = removeSubstringsToTheRight(newString, i);
if (newString.length() < minimum) {
minimum = newString.length();
result = newString;
}
}
i = s.indexOf(substr, i + 1);
}
}
return result;
}
}