/* package whatever; // don't place package name! */
import java.util.* ;
import java.lang.* ;
import java.io.* ;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public static int find( char [ ] array, char [ ] subs)
{
int found = 0 ;
for ( int x = 0 ; x < subs.length ; x++ )
{
for ( int y = 0 ; y < array.length ; y++ )
{
if ( subs[ x] == array[ y] )
{
found++;
// Y is the index of the element found in the original array
// we must erase this element so it's not found again.
char [ ] smaller_array = new char [ array.length - 1 ] ;
for ( int i = 0 ; i < array.length ; i++ )
{
if ( i < y)
smaller_array[ i] = array[ i] ;
if ( i == y)
continue ;
if ( i > y)
smaller_array[ i- 1 ] = array[ i] ;
}
array = smaller_array;
break ;
}
}
}
return found;
}
{
char [ ] array1 = { 'a' ,'b' ,'c' ,'d' ,'e' ,'f' ,'x' ,'r' } ;
char [ ] sub = { 'd' ,'e' ,'f' } ;
System .
out .
println ( "Number of matches with array #1: " + find
( array1, sub
) ) ;
char [ ] array2 = { 'g' ,'e' ,'h' ,'i' ,'d' ,'k' ,'x' ,'f' } ;
System .
out .
println ( "Number of matches with array #2: " + find
( array2, sub
) ) ;
char [ ] array3 = { 'd' } ;
System .
out .
println ( "Number of matches with array #3: " + find
( array3, sub
) ) ;
char [ ] array4 = { 'd' ,'d' ,'d' } ;
System .
out .
println ( "Number of matches with array #4: " + find
( array4, sub
) ) ;
char [ ] array5 = { 'd' ,'e' ,'f' } ;
System .
out .
println ( "Number of matches with array #5: " + find
( array5, sub
) ) ;
char [ ] array6 = { 'f' ,'d' ,'e' } ;
System .
out .
println ( "Number of matches with array #6: " + find
( array6, sub
) ) ;
char [ ] array7 = { 'a' ,'b' ,'c' ,'g' ,'h' ,'i' ,'j' ,'k' } ;
System .
out .
println ( "Number of matches with array #7: " + find
( array7, sub
) ) ; }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgaW50IGZpbmQoY2hhcltdIGFycmF5LCBjaGFyW10gc3VicykKCXsKCQlpbnQgZm91bmQgPSAwOwoJCWZvciAoaW50IHggPSAwOyB4IDwgc3Vicy5sZW5ndGg7IHgrKykKCQl7CgkJCWZvciAoaW50IHkgPSAwOyB5IDwgYXJyYXkubGVuZ3RoOyB5KyspCgkJCXsKCQkJCWlmIChzdWJzW3hdID09IGFycmF5W3ldKQoJCQkJewoJCQkJCWZvdW5kKys7CgkJCQkJCgkJCQkJLy8gWSBpcyB0aGUgaW5kZXggb2YgdGhlIGVsZW1lbnQgZm91bmQgaW4gdGhlIG9yaWdpbmFsIGFycmF5CgkJCQkJLy8gd2UgbXVzdCBlcmFzZSB0aGlzIGVsZW1lbnQgc28gaXQncyBub3QgZm91bmQgYWdhaW4uCgkJCQkJY2hhcltdIHNtYWxsZXJfYXJyYXkgPSBuZXcgY2hhclthcnJheS5sZW5ndGgtMV07CgkJCQkJZm9yIChpbnQgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykKCQkJCQl7CgkJCQkJCWlmIChpIDwgeSkKCQkJCQkJICAgIHNtYWxsZXJfYXJyYXlbaV0gPSBhcnJheVtpXTsKCQkJCQkJCgkJCQkJCWlmIChpID09IHkpCgkJCQkJCSBjb250aW51ZTsKCQkJCQkJCgkJCQkJCWlmIChpID4geSkKCQkJCSAgICAgICAJCXNtYWxsZXJfYXJyYXlbaS0xXSA9IGFycmF5W2ldOwoJCQkJCX0KCQkJCSAgICAKCQkJCSAgICBhcnJheSA9IHNtYWxsZXJfYXJyYXk7CgkJCQkJYnJlYWs7CgkJCQl9CgkJCX0KCQl9CgkJCgkJCgkJcmV0dXJuIGZvdW5kOwoJfQoKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCWNoYXJbXSBhcnJheTEgPSB7ICdhJywnYicsJ2MnLCdkJywnZScsJ2YnLCd4JywncicgfTsKCQljaGFyW10gc3ViID0geyAnZCcsJ2UnLCdmJyB9OwoJCVN5c3RlbS5vdXQucHJpbnRsbigiTnVtYmVyIG9mIG1hdGNoZXMgd2l0aCBhcnJheSAjMTogIiArIGZpbmQoYXJyYXkxLCBzdWIpKTsKCQkKCQljaGFyW10gYXJyYXkyID0geyAnZycsJ2UnLCdoJywnaScsJ2QnLCdrJywneCcsJ2YnIH07CgkJU3lzdGVtLm91dC5wcmludGxuKCJOdW1iZXIgb2YgbWF0Y2hlcyB3aXRoIGFycmF5ICMyOiAiICsgZmluZChhcnJheTIsIHN1YikpOwoJCQoJCWNoYXJbXSBhcnJheTMgPSB7ICdkJyB9OwoJCVN5c3RlbS5vdXQucHJpbnRsbigiTnVtYmVyIG9mIG1hdGNoZXMgd2l0aCBhcnJheSAjMzogIiArIGZpbmQoYXJyYXkzLCBzdWIpKTsKCQkKCQljaGFyW10gYXJyYXk0ID0geyAnZCcsJ2QnLCdkJyB9OwoJCVN5c3RlbS5vdXQucHJpbnRsbigiTnVtYmVyIG9mIG1hdGNoZXMgd2l0aCBhcnJheSAjNDogIiArIGZpbmQoYXJyYXk0LCBzdWIpKTsKCQkKCQljaGFyW10gYXJyYXk1ID0geyAnZCcsJ2UnLCdmJyB9OwoJCVN5c3RlbS5vdXQucHJpbnRsbigiTnVtYmVyIG9mIG1hdGNoZXMgd2l0aCBhcnJheSAjNTogIiArIGZpbmQoYXJyYXk1LCBzdWIpKTsKCQkKCQljaGFyW10gYXJyYXk2ID0geyAnZicsJ2QnLCdlJyB9OwoJCVN5c3RlbS5vdXQucHJpbnRsbigiTnVtYmVyIG9mIG1hdGNoZXMgd2l0aCBhcnJheSAjNjogIiArIGZpbmQoYXJyYXk2LCBzdWIpKTsKCQkKCQljaGFyW10gYXJyYXk3ID0geyAnYScsJ2InLCdjJywnZycsJ2gnLCdpJywnaicsJ2snIH07CgkJU3lzdGVtLm91dC5wcmludGxuKCJOdW1iZXIgb2YgbWF0Y2hlcyB3aXRoIGFycmF5ICM3OiAiICsgZmluZChhcnJheTcsIHN1YikpOwoJfQp9