Source code for submission s1105

Go to diff to previous submission

Bugs.java

  1.  
  2. import java.util.*;
  3.  
  4. class Chyba {
  5. public String ret;
  6. public int line;
  7. public int toLine;
  8.  
  9. }
  10.  
  11. public class Bugs {
  12. static List<Chyba> chyby = new LinkedList<Chyba>();
  13.  
  14. public static List<String> getErrors(int radka) {
  15. List<String> ret = new LinkedList<String>();
  16. for(Chyba a : chyby) {
  17. if (a.line <= radka && radka <= a.toLine) {
  18. ret.add(a.ret);
  19. }
  20. }
  21. return ret;
  22. }
  23.  
  24.  
  25. public static void main(String [] args) {
  26. Scanner sc = new Scanner(System.in);
  27.  
  28. int radek = 1;
  29.  
  30. /*String test = "Franta ERBUBERRUGGR";
  31. System.out.println(test);
  32. System.out.println(test.replaceAll("(BUG)*(ERR)*", ""));*/
  33.  
  34. while(sc.hasNextLine()) {
  35. String line = sc.nextLine();
  36.  
  37. // Test na bug case?
  38. String [] array = line.split(" ");
  39. if (array.length == 2) {
  40. // Pridat bug test
  41. Chyba a = new Chyba();
  42. a.ret = array[1];
  43. int nasleduje = 0;
  44. boolean jeToBug = true;
  45. try {
  46. nasleduje = Integer.parseInt(array[0]);
  47. } catch(Exception e) {
  48. jeToBug = false;
  49. }
  50. if (jeToBug) {
  51. a.line = radek+1;
  52. a.toLine = radek+nasleduje;
  53. chyby.add(a);
  54. radek++;
  55. continue;
  56. }
  57. }
  58.  
  59. // Replace na data
  60. List<String> chyby = getErrors(radek);
  61. int i = 0;
  62. int puvodni = line.length();
  63. int novaDelka = 0;
  64. boolean nalezeno = false;
  65. do {
  66. nalezeno = false;
  67. for(String er : chyby) {
  68. //System.out.println("Pred: "+line);
  69. line = line.replaceAll("("+er+")*", "");
  70. //System.out.println("Po: "+line);
  71. novaDelka = line.length();
  72. if (novaDelka != puvodni) {
  73. nalezeno = true;
  74. puvodni = novaDelka;
  75. }
  76. }
  77. } while(nalezeno);
  78.  
  79. System.out.println(line);
  80.  
  81. radek++;
  82. }
  83.  
  84. }
  85. }
  86.  

Diff to submission s976

Bugs.java

--- c4.s976.cteam111.bugs.java.0.Bugs.java
+++ c4.s1105.cteam111.bugs.java.0.Bugs.java
@@ -13,14 +13,10 @@
         
         public static List<String> getErrors(int radka) {
-                //System.out.println("Hledam chyby pro radku"+radka);
                 List<String> ret = new LinkedList<String>();
                 for(Chyba a : chyby) {
-                        //System.out.println("Chyba:"+a.ret+"od:"+a.line+",do:"+a.toLine);
                         if (a.line <= radka && radka <= a.toLine) {
-                                //System.out.println("Pro radku"+radka+"chyba:"+a.ret);
                                 ret.add(a.ret);
                         }
                 }
-                
                 return ret;
         }
@@ -32,4 +28,8 @@
             int radek = 1;
         
+            /*String test = "Franta ERBUBERRUGGR";
+            System.out.println(test);
+            System.out.println(test.replaceAll("(BUG)*(ERR)*", ""));*/
+            
                 while(sc.hasNextLine()) {
                         String line = sc.nextLine();
@@ -46,5 +46,4 @@
                                         nasleduje = Integer.parseInt(array[0]);
                                 } catch(Exception e) {
-                                        //System.out.println(e.getLocalizedMessage());
                                         jeToBug = false;
                                 }
@@ -54,25 +53,24 @@
                                         chyby.add(a);
                                         radek++;
-                                        //System.out.println("Pridavam chybu:"+array[1]+"line od:"+a.line+", do:"+a.toLine);
                                         continue;
                                 }
                         }
-                        //System.out.println("BUG BUG".indexOf("BUG"));
+                        
                         // Replace na data
                         List<String> chyby = getErrors(radek);
-                        //System.out.println("Zde se bude nahrazovat: "+chyby.toString());
+                        int i = 0;
+                        int puvodni = line.length();
+                        int novaDelka = 0;
                         boolean nalezeno = false;
                         do {
                                 nalezeno = false;
-                                for (String er : chyby) {
-                                        //System.out.println("Nahrazeno"+er);
-                                        while(true) {
-                                                if (line.indexOf(er) >= 0) {
-                                                        //System.out.println("Nalezeno"+er);
-                                                        line = line.replace(er, "");
-                                                        nalezeno = true; 
-                                                } else {
-                                                        break;
-                                                }
+                                for(String er : chyby) {
+                                        //System.out.println("Pred: "+line);
+                                        line = line.replaceAll("("+er+")*", "");
+                                        //System.out.println("Po: "+line);
+                                        novaDelka = line.length();
+                                        if (novaDelka != puvodni) {
+                                                nalezeno = true;
+                                                puvodni = novaDelka;
                                         }
                                 }