/** classe che calcola la massima comune sottostringa fra due stringhe @author Marcello Dalpasso @version 2 Ottobre-2003 */ public class MaxSottostringa3 { public static void main(String[] args) { if (args.length != 2) { System.out.println("uso: $java Sottostringa stringa1 stringa2"); System.exit(1); } String s1 = args[0]; String s2 = args[1]; String max = ""; int count = 0; for (int i = 0; i < s1.length() - max.length(); i++) { for (int j = 0; j < s2.length() - max.length(); j++) { int k = 0; // k e' la lunghezza della sottostringa while (i + k < s1.length() && j + k < s2.length()) { count++; if (s1.charAt(i + k) != s2.charAt(j + k)) break; k++; } if (k > max.length()) max = s1.substring(i, i + k); } } System.out.println("La piu' lunga sottostringa comune e': " + max); System.out.println("Iterazioni necessarie a trovarla: " + count); } }