/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package google ;
//import com.sun.org.apache.xml.internal.utils.Trie;
import java.util.* ;
/**
*
* @author prachichauhan
*/
class trietest {
char c;
//chirlder of trie are arrays of tri
Trie[ ] children;
boolean word; //marks the end of the word
public trietest( ) {
this .c = 0 ;
this .children = new Trie[ 26 ] ;
this .word = false ; //since empty string
}
if ( s.isEmpty ( ) ) {
this .word = true ; //end of word
return ;
}
char letter = s.charAt ( 0 ) ;
int index= letter- 'a' ; //to give each letter a correct position in the array; eg. index of b=98-97=1 , which makes sense as b is second chaarcter in the alphabet
if ( this .children [ index] == null ) {
this .children [ index] = new Trie( ) ;
}
this .children [ index] .add ( s.substring ( 1 ) ) ;
}
public boolean isword
( String s
) {
if ( s.isEmpty ( ) ) {
return this .word ;
}
int index= s.charAt ( 0 ) - 'a' ;
if ( this .children [ index] == null ) {
return false ;
}
return this .children [ index] .isword ( s.substring ( 1 ) ) ;
}
}
LyoKICogVG8gY2hhbmdlIHRoaXMgbGljZW5zZSBoZWFkZXIsIGNob29zZSBMaWNlbnNlIEhlYWRlcnMgaW4gUHJvamVjdCBQcm9wZXJ0aWVzLgogKiBUbyBjaGFuZ2UgdGhpcyB0ZW1wbGF0ZSBmaWxlLCBjaG9vc2UgVG9vbHMgfCBUZW1wbGF0ZXMKICogYW5kIG9wZW4gdGhlIHRlbXBsYXRlIGluIHRoZSBlZGl0b3IuCiAqLwpwYWNrYWdlIGdvb2dsZTsKLy9pbXBvcnQgY29tLnN1bi5vcmcuYXBhY2hlLnhtbC5pbnRlcm5hbC51dGlscy5UcmllOwppbXBvcnQgamF2YS51dGlsLio7Ci8qKgogKgogKiBAYXV0aG9yIHByYWNoaWNoYXVoYW4KICovCmNsYXNzIHRyaWV0ZXN0IHsKICAgIAogICAgY2hhciBjOwogICAgLy9jaGlybGRlciBvZiB0cmllIGFyZSBhcnJheXMgb2YgdHJpCiAgICBUcmllW10gY2hpbGRyZW47CiAgICBib29sZWFuIHdvcmQ7Ly9tYXJrcyB0aGUgZW5kIG9mIHRoZSB3b3JkCiAgICBwdWJsaWMgdHJpZXRlc3QoKXsKICAgICAgICB0aGlzLmM9MDsKICAgICAgICB0aGlzLmNoaWxkcmVuPW5ldyBUcmllWzI2XTsKICAgICAgICB0aGlzLndvcmQ9ZmFsc2U7Ly9zaW5jZSBlbXB0eSBzdHJpbmcKICAgIH0KICAgIHB1YmxpYyB2b2lkIGFkZChTdHJpbmcgcyl7CiAgICAgICAgaWYocy5pc0VtcHR5KCkpewogICAgICAgICAgICB0aGlzLndvcmQ9dHJ1ZTsgLy9lbmQgb2Ygd29yZAogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGNoYXIgbGV0dGVyID1zLmNoYXJBdCgwKTsKICAgICAgICBpbnQgaW5kZXg9IGxldHRlci0nYSc7Ly90byBnaXZlIGVhY2ggbGV0dGVyIGEgY29ycmVjdCBwb3NpdGlvbiBpbiB0aGUgYXJyYXk7IGVnLiBpbmRleCBvZiBiPTk4LTk3PTEgLCB3aGljaCBtYWtlcyBzZW5zZSBhcyBiIGlzIHNlY29uZCBjaGFhcmN0ZXIgaW4gdGhlIGFscGhhYmV0CiAgICAgICAgCiAgICAgICAgaWYodGhpcy5jaGlsZHJlbltpbmRleF09PW51bGwpewogICAgICAgICAgICB0aGlzLmNoaWxkcmVuW2luZGV4XT1uZXcgVHJpZSgpOwogICAgICAgIH0KICAgICAgICB0aGlzLmNoaWxkcmVuW2luZGV4XS5hZGQocy5zdWJzdHJpbmcoMSkpOwogICAgICAgIAogICAgfQogICAgCiAgICBwdWJsaWMgYm9vbGVhbiBpc3dvcmQoU3RyaW5nIHMpewogICAgCiAgICAgICAgaWYocy5pc0VtcHR5KCkpewogICAgICAgICAgICByZXR1cm4gdGhpcy53b3JkOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBpbnQgaW5kZXg9cy5jaGFyQXQoMCktJ2EnOwogICAgICAgIAogICAgICAgIGlmKHRoaXMuY2hpbGRyZW5baW5kZXhdPT1udWxsKXsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpcy5jaGlsZHJlbltpbmRleF0uaXN3b3JkKHMuc3Vic3RyaW5nKDEpKTsKICAgIH0KfQo=