From 240689cf3dec420ca8929d3c615be98e151481d5 Mon Sep 17 00:00:00 2001 From: Kirill Date: Wed, 4 Oct 2017 17:01:05 +0300 Subject: [PATCH 1/4] Task8 --- .../javacourses2016/task8/SolverTask8.java | 47 ++++++++++++++++++- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/epam/javacourses2016/task8/SolverTask8.java b/src/main/java/com/epam/javacourses2016/task8/SolverTask8.java index 46a0bfe..a76e3cf 100644 --- a/src/main/java/com/epam/javacourses2016/task8/SolverTask8.java +++ b/src/main/java/com/epam/javacourses2016/task8/SolverTask8.java @@ -10,12 +10,55 @@ public class SolverTask8 { /** * Проверяет правильность расстановки скобок. * Правильная расстановка: - * 1) Каждой открывающей скобке соответствует закрывающая того же типа. - * 2) Нет пересечения областей, обрамленных скобками. + * 1) Каждой открывающей скобке соответствует закрывающая того же типа. + * 2) Нет пересечения областей, обрамленных скобками. + * * @param string Анализируемая строка. * @return true - скобки расставлены верно, иначе - false. */ public boolean isNormalBrackets(String string) { + Stack st = new Stack<>(); + char charr[] = str.toCharArray(); + String tmp = Character.toString(charr[0]); + for (int i = 0; i < charr.length; i++) { + + st.push(Character.toString(charr[i])); + switch (tmp) { + case "(": + if (st.peek().equals(")")) { + st.pop(); + st.pop(); + } + break; + case "{": + if (st.peek().equals("}")) { + st.pop(); + st.pop(); + } + break; + case "[": + if (st.peek().equals("]")) { + st.pop(); + st.pop(); + } + break; + + default: + + break; + + } + if (!st.empty()) { + tmp = st.peek(); + } else { + tmp = null; + } + } + if (st.empty()) { + return true; + } return false; + } } + From e4486ff1e06c3a872e09d08154cca43e73406c4d Mon Sep 17 00:00:00 2001 From: Kirill Date: Wed, 4 Oct 2017 17:07:44 +0300 Subject: [PATCH 2/4] Task9 --- .../com/epam/javacourses2016/task9/SolverTask9.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/epam/javacourses2016/task9/SolverTask9.java b/src/main/java/com/epam/javacourses2016/task9/SolverTask9.java index 4702747..d8e952c 100644 --- a/src/main/java/com/epam/javacourses2016/task9/SolverTask9.java +++ b/src/main/java/com/epam/javacourses2016/task9/SolverTask9.java @@ -17,6 +17,15 @@ public class SolverTask9 { * @return Множество полученных слов. */ public HashSet getUniqueWords(File input) { - return null; + Scanner sc=new Scanner(input); + HashSet hs=new HashSet<>(); + while(sc.hasNextLine()){ + for(String str:sc.nextLine().split("\\s+")){ + hs.add(str.toLowerCase()); + } + } + return hs; + } + } } From f9cb269e0c6c5f91869eede7b285a4be4a7fa0f2 Mon Sep 17 00:00:00 2001 From: Kirill Date: Sun, 8 Oct 2017 16:49:40 +0300 Subject: [PATCH 3/4] FixedTask8 --- .../javacourses2016/task8/SolverTask8.java | 91 ++++++++++++------- 1 file changed, 56 insertions(+), 35 deletions(-) diff --git a/src/main/java/com/epam/javacourses2016/task8/SolverTask8.java b/src/main/java/com/epam/javacourses2016/task8/SolverTask8.java index a76e3cf..5f743ba 100644 --- a/src/main/java/com/epam/javacourses2016/task8/SolverTask8.java +++ b/src/main/java/com/epam/javacourses2016/task8/SolverTask8.java @@ -16,49 +16,70 @@ public class SolverTask8 { * @param string Анализируемая строка. * @return true - скобки расставлены верно, иначе - false. */ - public boolean isNormalBrackets(String string) { - Stack st = new Stack<>(); - char charr[] = str.toCharArray(); - String tmp = Character.toString(charr[0]); - for (int i = 0; i < charr.length; i++) { + private static boolean isOpenBrecket(char c) { + switch (c) { + case '(': + return true; + case '{': + return true; + case '[': + return true; + default: + return false; + } + } + - st.push(Character.toString(charr[i])); - switch (tmp) { - case "(": - if (st.peek().equals(")")) { - st.pop(); - st.pop(); - } - break; - case "{": - if (st.peek().equals("}")) { - st.pop(); - st.pop(); - } - break; - case "[": - if (st.peek().equals("]")) { - st.pop(); - st.pop(); - } - break; + private static boolean isCloseBrecket(char c) { + switch (c) { + case ')': + return true; + case '}': + return true; + case ']': + return true; + default: + return false; + } + } + private static boolean isNormalPairOfBrecket(char leftBr, char rightBr) { + if (isOpenBrecket(leftBr) && isCloseBrecket(rightBr)) { + switch (leftBr) { + case '[': + return rightBr == ']'; + case '{': + return rightBr == '}'; + case '(': + return rightBr == ')'; default: + return false; + } - break; + } else { + return false; + } + } - } - if (!st.empty()) { - tmp = st.peek(); - } else { - tmp = null; + public static boolean isNormalBreckets(String st) { + Stack stc = new Stack<>(); + ArrayList arr = new ArrayList<>(); + for (char c : st.toCharArray()) { + if (isCloseBrecket(c) || isOpenBrecket(c)) { + arr.add(c); } } - if (st.empty()) { - return true; + for (int i = 0; i < arr.size(); i++) { + if (isOpenBrecket(arr.get(i))) { + stc.push(arr.get(i)); + } else if (stc.isEmpty()) { + stc.push(arr.get(i)); + break; + } else if(isNormalPairOfBrecket(stc.peek(),arr.get(i))){ + stc.pop(); + } } - return false; - + return stc.isEmpty(); } } From 7a3d6d3ada0557a0e8823fecfccea4d1f66ead43 Mon Sep 17 00:00:00 2001 From: Kirill Date: Mon, 9 Oct 2017 19:30:19 +0300 Subject: [PATCH 4/4] Task8_Task9 --- .idea/compiler.xml | 9 ++++++++ .../Gradle__com_beust_jcommander_1_48.xml | 11 +++++++++ .idea/libraries/Gradle__junit_junit_4_10.xml | 11 +++++++++ .../Gradle__org_apache_ant_ant_1_7_0.xml | 11 +++++++++ ...dle__org_apache_ant_ant_launcher_1_7_0.xml | 9 ++++++++ .../Gradle__org_beanshell_bsh_2_0b4.xml | 9 ++++++++ ...Gradle__org_hamcrest_hamcrest_core_1_1.xml | 11 +++++++++ .../Gradle__org_testng_testng_6_9_9.xml | 11 +++++++++ .../Gradle__org_yaml_snakeyaml_1_15.xml | 11 +++++++++ .idea/modules/javacourses2016.iml | 13 +++++++++++ .idea/modules/javacourses2016_main.iml | 13 +++++++++++ .idea/modules/javacourses2016_test.iml | 23 +++++++++++++++++++ .../javacourses2016/task8/SolverTask8.java | 9 +++++--- .../javacourses2016/task9/SolverTask9.java | 6 +++-- .../task8/SolverTask8Test.java | 2 +- .../task9/SolverTask9Test.java | 2 +- 16 files changed, 154 insertions(+), 7 deletions(-) create mode 100644 .idea/compiler.xml create mode 100644 .idea/libraries/Gradle__com_beust_jcommander_1_48.xml create mode 100644 .idea/libraries/Gradle__junit_junit_4_10.xml create mode 100644 .idea/libraries/Gradle__org_apache_ant_ant_1_7_0.xml create mode 100644 .idea/libraries/Gradle__org_apache_ant_ant_launcher_1_7_0.xml create mode 100644 .idea/libraries/Gradle__org_beanshell_bsh_2_0b4.xml create mode 100644 .idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_1.xml create mode 100644 .idea/libraries/Gradle__org_testng_testng_6_9_9.xml create mode 100644 .idea/libraries/Gradle__org_yaml_snakeyaml_1_15.xml create mode 100644 .idea/modules/javacourses2016.iml create mode 100644 .idea/modules/javacourses2016_main.iml create mode 100644 .idea/modules/javacourses2016_test.iml diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..7eaf48d --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_beust_jcommander_1_48.xml b/.idea/libraries/Gradle__com_beust_jcommander_1_48.xml new file mode 100644 index 0000000..0e8224e --- /dev/null +++ b/.idea/libraries/Gradle__com_beust_jcommander_1_48.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__junit_junit_4_10.xml b/.idea/libraries/Gradle__junit_junit_4_10.xml new file mode 100644 index 0000000..1b0c3a2 --- /dev/null +++ b/.idea/libraries/Gradle__junit_junit_4_10.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__org_apache_ant_ant_1_7_0.xml b/.idea/libraries/Gradle__org_apache_ant_ant_1_7_0.xml new file mode 100644 index 0000000..f83d3b6 --- /dev/null +++ b/.idea/libraries/Gradle__org_apache_ant_ant_1_7_0.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__org_apache_ant_ant_launcher_1_7_0.xml b/.idea/libraries/Gradle__org_apache_ant_ant_launcher_1_7_0.xml new file mode 100644 index 0000000..e4fa82a --- /dev/null +++ b/.idea/libraries/Gradle__org_apache_ant_ant_launcher_1_7_0.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__org_beanshell_bsh_2_0b4.xml b/.idea/libraries/Gradle__org_beanshell_bsh_2_0b4.xml new file mode 100644 index 0000000..6b2907c --- /dev/null +++ b/.idea/libraries/Gradle__org_beanshell_bsh_2_0b4.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_1.xml b/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_1.xml new file mode 100644 index 0000000..932a17a --- /dev/null +++ b/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_1.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__org_testng_testng_6_9_9.xml b/.idea/libraries/Gradle__org_testng_testng_6_9_9.xml new file mode 100644 index 0000000..26714bd --- /dev/null +++ b/.idea/libraries/Gradle__org_testng_testng_6_9_9.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__org_yaml_snakeyaml_1_15.xml b/.idea/libraries/Gradle__org_yaml_snakeyaml_1_15.xml new file mode 100644 index 0000000..f3616db --- /dev/null +++ b/.idea/libraries/Gradle__org_yaml_snakeyaml_1_15.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules/javacourses2016.iml b/.idea/modules/javacourses2016.iml new file mode 100644 index 0000000..8987b5b --- /dev/null +++ b/.idea/modules/javacourses2016.iml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules/javacourses2016_main.iml b/.idea/modules/javacourses2016_main.iml new file mode 100644 index 0000000..4f7f4ba --- /dev/null +++ b/.idea/modules/javacourses2016_main.iml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules/javacourses2016_test.iml b/.idea/modules/javacourses2016_test.iml new file mode 100644 index 0000000..f6ae528 --- /dev/null +++ b/.idea/modules/javacourses2016_test.iml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/epam/javacourses2016/task8/SolverTask8.java b/src/main/java/com/epam/javacourses2016/task8/SolverTask8.java index 5f743ba..8ff5094 100644 --- a/src/main/java/com/epam/javacourses2016/task8/SolverTask8.java +++ b/src/main/java/com/epam/javacourses2016/task8/SolverTask8.java @@ -1,5 +1,8 @@ package com.epam.javacourses2016.task8; +import java.util.ArrayList; +import java.util.Stack; + /** * Задана строка, возможно содержащая символы '(', ')', '[', ']', '{', '}'. * Проверить правильность расстановки скобок. @@ -7,13 +10,13 @@ */ public class SolverTask8 { - /** + /* * Проверяет правильность расстановки скобок. * Правильная расстановка: * 1) Каждой открывающей скобке соответствует закрывающая того же типа. * 2) Нет пересечения областей, обрамленных скобками. * - * @param string Анализируемая строка. + * @param String s Анализируемая строка. * @return true - скобки расставлены верно, иначе - false. */ private static boolean isOpenBrecket(char c) { @@ -61,7 +64,7 @@ private static boolean isNormalPairOfBrecket(char leftBr, char rightBr) { } } - public static boolean isNormalBreckets(String st) { + public static boolean isNormalBrackets(String st) { Stack stc = new Stack<>(); ArrayList arr = new ArrayList<>(); for (char c : st.toCharArray()) { diff --git a/src/main/java/com/epam/javacourses2016/task9/SolverTask9.java b/src/main/java/com/epam/javacourses2016/task9/SolverTask9.java index d8e952c..3638a55 100644 --- a/src/main/java/com/epam/javacourses2016/task9/SolverTask9.java +++ b/src/main/java/com/epam/javacourses2016/task9/SolverTask9.java @@ -1,7 +1,9 @@ package com.epam.javacourses2016.task9; import java.io.File; +import java.io.FileNotFoundException; import java.util.HashSet; +import java.util.Scanner; /** * Задан файл, содержащий английские слова (без знаков препинания). @@ -16,7 +18,7 @@ public class SolverTask9 { * @param input Анализируемый файл. * @return Множество полученных слов. */ - public HashSet getUniqueWords(File input) { + public HashSet getUniqueWords(File input)throws FileNotFoundException { Scanner sc=new Scanner(input); HashSet hs=new HashSet<>(); while(sc.hasNextLine()){ @@ -28,4 +30,4 @@ public HashSet getUniqueWords(File input) { } } -} + diff --git a/src/test/java/com/epam/javacourses2016/task8/SolverTask8Test.java b/src/test/java/com/epam/javacourses2016/task8/SolverTask8Test.java index bea83d6..fcd9f64 100644 --- a/src/test/java/com/epam/javacourses2016/task8/SolverTask8Test.java +++ b/src/test/java/com/epam/javacourses2016/task8/SolverTask8Test.java @@ -6,7 +6,7 @@ public class SolverTask8Test { - @Test(enabled = false, dataProvider = "myString") + @Test(enabled = true, dataProvider = "myString") public void testIsNormalBrackets(String string, boolean result) throws Exception { SolverTask8 solver = new SolverTask8(); Assert.assertEquals(solver.isNormalBrackets(string), result); diff --git a/src/test/java/com/epam/javacourses2016/task9/SolverTask9Test.java b/src/test/java/com/epam/javacourses2016/task9/SolverTask9Test.java index 39cd428..a6fafea 100644 --- a/src/test/java/com/epam/javacourses2016/task9/SolverTask9Test.java +++ b/src/test/java/com/epam/javacourses2016/task9/SolverTask9Test.java @@ -11,7 +11,7 @@ public class SolverTask9Test { - @Test(enabled = false, dataProvider = "text") + @Test(enabled = true, dataProvider = "text") public void testGetUniqueWords(String fileName, String fileResult) throws Exception { SolverTask9 solver = new SolverTask9(); ClassLoader classLoader = getClass().getClassLoader();