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 46a0bfe..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,15 +10,79 @@ */ public class SolverTask8 { - /** + /* * Проверяет правильность расстановки скобок. * Правильная расстановка: - * 1) Каждой открывающей скобке соответствует закрывающая того же типа. - * 2) Нет пересечения областей, обрамленных скобками. - * @param string Анализируемая строка. + * 1) Каждой открывающей скобке соответствует закрывающая того же типа. + * 2) Нет пересечения областей, обрамленных скобками. + * + * @param String s Анализируемая строка. * @return true - скобки расставлены верно, иначе - false. */ - public boolean isNormalBrackets(String string) { - return false; + private static boolean isOpenBrecket(char c) { + switch (c) { + case '(': + return true; + case '{': + return true; + case '[': + return true; + default: + return false; + } + } + + + 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; + } + + } else { + return false; + } + } + + public static boolean isNormalBrackets(String st) { + Stack stc = new Stack<>(); + ArrayList arr = new ArrayList<>(); + for (char c : st.toCharArray()) { + if (isCloseBrecket(c) || isOpenBrecket(c)) { + arr.add(c); + } + } + 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 stc.isEmpty(); } } + diff --git a/src/main/java/com/epam/javacourses2016/task9/SolverTask9.java b/src/main/java/com/epam/javacourses2016/task9/SolverTask9.java index 4702747..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,16 @@ public class SolverTask9 { * @param input Анализируемый файл. * @return Множество полученных слов. */ - public HashSet getUniqueWords(File input) { - return null; + public HashSet getUniqueWords(File input)throws FileNotFoundException { + 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; } -} + + } + 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();