Advertisement
Guest User

Untitled

a guest
Apr 24th, 2015
224
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.56 KB | None | 0 0
  1. import java.io.IOException;
  2. import java.util.ArrayList;
  3. import java.util.Scanner;
  4.  
  5. public class ExA {
  6.  
  7. public static void main(String[] args) {
  8. String size;
  9. ArrayList<Palavra> listaPalavras = new ArrayList<>();
  10. Scanner sc = new Scanner(System.in);
  11. size = sc.nextLine();
  12. while (!size.equals("")) {
  13. for (int i = 0; i < Integer.parseInt(size); i++) {
  14. String input = readLn(400);
  15. System.out.println(input);
  16. String[] aux = separaPalavras(input);
  17. if(aux!=null){
  18. for (int j = 0; j < aux.length; j++) {
  19. int bol = find(listaPalavras, aux[j]);
  20. if (bol != -1) {
  21. listaPalavras.get(bol).n++;
  22. } else {
  23. Palavra palavraAux = new Palavra(aux[j]);
  24. listaPalavras.add(palavraAux);
  25. }
  26. }
  27. }
  28. }
  29. size = sc.nextLine();
  30. }
  31. quickSort(listaPalavras, 0, listaPalavras.size() - 1);
  32. for (int i = 0; i < listaPalavras.size(); i++) {
  33. System.out.println(listaPalavras.get(i));
  34. }
  35. }
  36.  
  37. static int find(ArrayList<Palavra> a, String b) {
  38. for (int i = 0; i < a.size(); i++) {
  39. if (b.equalsIgnoreCase(a.get(i).palavra)) {
  40. return i;
  41. }
  42. }
  43. return -1;
  44. }
  45.  
  46. static String[] separaPalavras(String linha) {
  47. String[] aux;
  48. System.out.println(linha);
  49. if(linha!=null){
  50. aux = linha.toLowerCase().split("[,\\{\\}\\ \\;\\\\_\\@\\#\\$\\%\\&\\*\\+\\(\\)\\.\\!\\-\\:\\?]");
  51. for(int i=0;i<aux.length;i++)
  52. System.out.println(aux[i]);
  53. }
  54.  
  55. return aux;
  56. }
  57.  
  58. static String readLn(int maxLg) {
  59. byte lin[] = new byte[maxLg];
  60. int lg = 0, car = -1;
  61. try {
  62. while (lg < maxLg) {
  63. car = System.in.read();
  64. if ((car < 0) || (car == '\n')) {
  65. break;
  66. }
  67. lin[lg++] += car;
  68. }
  69. } catch (IOException e) {
  70. return (null);
  71. }
  72. if ((car < 0) && (lg == 0)) {
  73. return (null);
  74. }
  75. return (new String(lin, 0, lg));
  76. }
  77.  
  78. static void quickSort(ArrayList<Palavra> array, int left, int right) {
  79. int i = left, j = right;
  80. Palavra tmp;
  81. Palavra pivot = array.get((left + right) / 2);
  82. while (i <= j) {
  83.  
  84. while (array.get(i).n > pivot.n || (array.get(i).palavra.compareTo(pivot.palavra) < 0 && array.get(i).n == pivot.n)) {
  85. i++;
  86. }
  87. while (array.get(j).n < pivot.n || (array.get(j).palavra.compareTo(pivot.palavra) > 0 && array.get(j).n == pivot.n)) {
  88. j--;
  89. }
  90.  
  91. if (i <= j) {
  92. tmp = array.get(i);
  93. array.set(i, array.get(j));
  94. array.set(j, tmp);
  95. i++;
  96. j--;
  97. }
  98. }
  99.  
  100. if (left < j) {
  101. quickSort(array, left, j);
  102. }
  103. if (i < right) {
  104. quickSort(array, i, right);
  105. }
  106. }
  107.  
  108. }
  109.  
  110. class Palavra {
  111.  
  112. String palavra;
  113. int n;
  114.  
  115. Palavra(String aux) {
  116. palavra = aux;
  117. n = 1;
  118. }
  119.  
  120. public String toString() {
  121. return palavra + " " + n;
  122. }
  123. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement