/* Def. includes * Let #(x,s) = the number of occurrences of the charcter x in the string s. * includes(a,b) holds if for every character x in b, #(x,b) <= #(x,a) * * A necessary precondition for includes is that both strings are sorted * in ascending order. */ private boolean includes( String a, String b ) { if ( b == null || b.length() == 0 ) return true; else if ( a == null || a.length() == 0 ) return false; //precondition: a.length() > 0 && b.length() > 0 int i = 0, j = 0; while ( j < b.length() ) { if (i >= a.length() || b.charAt(j) < a.charAt(i)) return false; else if (b.charAt(j) == a.charAt(i)) { i++; j++; } else if (b.charAt(j) > a.charAt(i)) i++; } //postcondition: j == b.length() return true; }