I've written this code in java, it produces the correct output for the given example input, it also handles an input like "A." correctly. Does anybody know where the problem is with my code?
Somebody has written sth about blank lines, but I didn't really get it... I keep getting wrong answer. WTF?!?
Thanks
Code: Select all
import java.util.*;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
boolean foundFlag = false;
char c;
int i, j, maxCount = 0;
String input;
Scanner sc = new Scanner(System.in);
ArrayList<Character> charList = new ArrayList<Character>();
ArrayList<Integer> counterList = new ArrayList<Integer>();
ArrayList<Boolean> caseList = new ArrayList<Boolean>();
while(sc.hasNextLine()) {
maxCount = 0;
foundFlag = false;
charList.clear();
counterList.clear();
caseList.clear();
input = sc.nextLine();
for(i=0; i<input.length(); i++) {
c = input.charAt(i);
if(Character.isLetter(c)) {
for(j=0; j<charList.size(); j++) {
if(charList.get(j) == c) {
counterList.set(j, counterList.get(j)+1);
if(counterList.get(j) > maxCount) maxCount = counterList.get(j);
foundFlag = true;
break;
}
else
foundFlag = false;
}
if(!foundFlag) {
charList.add(c);
counterList.add(1);
caseList.add(Character.isUpperCase(c));
if(maxCount == 0) maxCount = 1;
}
}
}
for(i=0; i<charList.size(); i++) {
if((counterList.get(i) == maxCount) && (caseList.get(i) == true))
System.out.print(charList.get(i).toString());
}
for(i=0; i<charList.size(); i++) {
if((counterList.get(i) == maxCount) && (caseList.get(i) == false))
System.out.print(charList.get(i).toString());
}
System.out.print(" " + maxCount + "\n");
}
sc.close();
return;
}
}