Google Interview Question
Software Engineer / DevelopersCountry: United States
Interview Type: Phone Interview
Solution in java:
public interface Criteria {
public Score getScore(String input);
}
public class VowelCriteria implements Criteria {
@Override
public Score getScore(String input) {
int score = 0;
for(char c : input.toCharArray()) {
if(isVowel(c)) {
score++;
}
}
return new Score(score, input);
}
private boolean isVowel(char c) {
return c == 'a' ||
c == 'e' ||
c == 'i' ||
c == 'o' ||
c == 'u';
}
}
public class LengthCriteria implements Criteria {
@Override
public Score getScore(String input) {
int score = 0;
if(input != null) {
score = input.length();
}
return new Score(score, input);
}
}
public class Score implements Comparable<Score> {
public int score;
public String input;
public Score(int score, String input) {
super();
this.score = score;
this.input = input;
}
@Override
public int compareTo(Score s) {
return Integer.valueOf(this.score).compareTo(s.score);
}
}
public class CriteriaCalculator {
public static String[] words = new String[]{"georgia", "seattle", "arizona", "texas", "atlanta"};
public static Score getMaxScore(String[] words, Criteria c) {
Score maxScore = null;
for(String word : words) {
Score s = c.getScore(word);
if(maxScore == null || maxScore.compareTo(s) <= 0) {
maxScore = s;
}
}
return maxScore;
}
public static void main(String[] args) {
Score vowelMax = getMaxScore(words, new VowelCriteria());
System.out.println(vowelMax.input);
System.out.println(vowelMax.score);
Score lengthMax = getMaxScore(words, new LengthCriteria());
System.out.println(lengthMax.input);
System.out.println(lengthMax.score);
}
}
Java code using Pattern and Matcher class.
public static void main(String args[])throws IOException{
File file = new File("Input.txt");
try {
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
String str = null,finalStr=null;
int count=0,finalCnt=-1;
while((str = br.readLine()) != null){
count=0;
Pattern p = Pattern.compile("[aeiouAEIOU]");
Matcher m = p.matcher(str);
while(m.find()){
count++;
}
if(count>finalCnt){
finalCnt = count;
finalStr = str;
}
}
System.out.println("Max vowel string :: "+finalStr);
System.out.println("Max vowel count :: "+finalCnt);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Solution in python
test.txt
OUTPUT
- whatevva' December 18, 2013