Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.Scanner;
- public class ExA {
- public static void main(String[] args) {
- String size;
- ArrayList<Palavra> listaPalavras = new ArrayList<>();
- Scanner sc = new Scanner(System.in);
- size = sc.nextLine();
- while (!size.equals("")) {
- for (int i = 0; i < Integer.parseInt(size); i++) {
- String input = readLn(400);
- System.out.println(input);
- String[] aux = separaPalavras(input);
- if(aux!=null){
- for (int j = 0; j < aux.length; j++) {
- int bol = find(listaPalavras, aux[j]);
- if (bol != -1) {
- listaPalavras.get(bol).n++;
- } else {
- Palavra palavraAux = new Palavra(aux[j]);
- listaPalavras.add(palavraAux);
- }
- }
- }
- }
- size = sc.nextLine();
- }
- quickSort(listaPalavras, 0, listaPalavras.size() - 1);
- for (int i = 0; i < listaPalavras.size(); i++) {
- System.out.println(listaPalavras.get(i));
- }
- }
- static int find(ArrayList<Palavra> a, String b) {
- for (int i = 0; i < a.size(); i++) {
- if (b.equalsIgnoreCase(a.get(i).palavra)) {
- return i;
- }
- }
- return -1;
- }
- static String[] separaPalavras(String linha) {
- String[] aux;
- System.out.println(linha);
- if(linha!=null){
- aux = linha.toLowerCase().split("[,\\{\\}\\ \\;\\\\_\\@\\#\\$\\%\\&\\*\\+\\(\\)\\.\\!\\-\\:\\?]");
- for(int i=0;i<aux.length;i++)
- System.out.println(aux[i]);
- }
- return aux;
- }
- static String readLn(int maxLg) {
- byte lin[] = new byte[maxLg];
- int lg = 0, car = -1;
- try {
- while (lg < maxLg) {
- car = System.in.read();
- if ((car < 0) || (car == '\n')) {
- break;
- }
- lin[lg++] += car;
- }
- } catch (IOException e) {
- return (null);
- }
- if ((car < 0) && (lg == 0)) {
- return (null);
- }
- return (new String(lin, 0, lg));
- }
- static void quickSort(ArrayList<Palavra> array, int left, int right) {
- int i = left, j = right;
- Palavra tmp;
- Palavra pivot = array.get((left + right) / 2);
- while (i <= j) {
- while (array.get(i).n > pivot.n || (array.get(i).palavra.compareTo(pivot.palavra) < 0 && array.get(i).n == pivot.n)) {
- i++;
- }
- while (array.get(j).n < pivot.n || (array.get(j).palavra.compareTo(pivot.palavra) > 0 && array.get(j).n == pivot.n)) {
- j--;
- }
- if (i <= j) {
- tmp = array.get(i);
- array.set(i, array.get(j));
- array.set(j, tmp);
- i++;
- j--;
- }
- }
- if (left < j) {
- quickSort(array, left, j);
- }
- if (i < right) {
- quickSort(array, i, right);
- }
- }
- }
- class Palavra {
- String palavra;
- int n;
- Palavra(String aux) {
- palavra = aux;
- n = 1;
- }
- public String toString() {
- return palavra + " " + n;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement