GrubHub Interview Question
Software Engineer / DevelopersTeam: Products
Country: United States
Interview Type: Written Test
public static String leastNum(String[] myS) {
String[] myHash = new String[10]; //this assumes max 10 numeric characters per string
int count = 0;
for (String s: myS) {
for (char c: s.toCharArray()) {
if (c >= 48 && c <= 57) {
count++;
}
}
if (myHash[count] != null && s.length() > myHash[count].length()) {
myHash[count] = s;
}
else if (myHash[count] == null){
myHash[count] = s;
}
count = 0;
}
String solution = null;
for (int i=9; i>=0; i--) {
if (myHash[i] != null) {
System.out.println(myHash[i]);
solution = myHash[i];
break;
}
}
return solution;
}
public class FastFindString {
public String fastFind(String[] array)
{
if (array.length == 1)
{
return array[0];
}
if (array.length == 2)
{
if (array[0].equalsIgnoreCase(array[1]))
{
return array[0];
}
}
String leastNumString = null;
int leastCount = -1;
for (int i=0; i<array.length; i++)
{
String str = array[i];
String num_str = str.replaceAll("[^-?0-9]+", " ");
if (null != num_str)
{
List<String> numList = Arrays.asList(num_str.trim().split(" "));
int count = numList.size();
if (i==0)
{
leastCount = count;
}
if (count < leastCount)
{
leastCount = count;
leastNumString = str;
}
}
}
return leastNumString;
}
public static void main(String[] args)
{
FastFindString fastFind = new FastFindString();
String[] input = {"ABCDEF", "ABCDEF"};
System.out.println(fastFind.fastFind(input));
}
}
public class FastFindString {
public String fastFind(String[] array)
{
if (array.length == 1)
{
return array[0];
}
if (array.length == 2)
{
if (array[0].equalsIgnoreCase(array[1]))
{
return array[0];
}
}
String leastNumString = null;
int leastCount = -1;
for (int i=0; i<array.length; i++)
{
String str = array[i];
String num_str = str.replaceAll("[^-?0-9]+", " ");
if (null != num_str)
{
List<String> numList = Arrays.asList(num_str.trim().split(" "));
int count = numList.size();
if (i==0)
{
leastCount = count;
}
if (count < leastCount)
{
leastCount = count;
leastNumString = str;
}
}
}
return leastNumString;
}
public static void main(String[] args)
{
FastFindString fastFind = new FastFindString();
String[] input = {"ABCDEF", "ABCDEF"};
System.out.println(fastFind.fastFind(input));
}
}
- Sunil B N September 02, 2012