package search;
public class FindString {
int ans = -1;
public int findString(String[] words, String s) {
int n = words.length;
int left = 0;
int right = n - 1;
findString(words, s, left, right);
return ans;
}
public void findString(String[] words, String target, int left, int right){
if(ans != -1){
return;
}
if(left > right) {
return;
}
int mid = (left + right) >> 1;
if(words[mid] == target){
ans = mid;
return;
}
if("".equals(words[mid])){
findString(words, target, left, mid - 1);
findString(words, target, mid + 1, right);
}else if(words[mid].compareTo(target) > 0){
findString(words, target, left, mid - 1);
}else{
findString(words, target, mid + 1, right);
}
}
public static void main(String[] args) {
String[] words = {"at", "", "", "", "ball", "", "", "car", "", "", "dad", "", ""};
String s = "ball";
FindString fs = new FindString();
int ans = fs.findString(words, s);
System.out.println(ans);
}
}