From 81148e884973475b84e5a53ddc072bc3375ae1c0 Mon Sep 17 00:00:00 2001 From: Petr Tsvetkov Date: Mon, 9 Oct 2017 16:44:06 +0300 Subject: [PATCH 1/2] Tasks 8 and 9 done --- .../javacourses2016/task8/SolverTask8.java | 33 +++++++++++++++++-- .../javacourses2016/task9/SolverTask9.java | 18 ++++++++-- 2 files changed, 46 insertions(+), 5 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..c49623b 100644 --- a/src/main/java/com/epam/javacourses2016/task8/SolverTask8.java +++ b/src/main/java/com/epam/javacourses2016/task8/SolverTask8.java @@ -1,5 +1,7 @@ package com.epam.javacourses2016.task8; +import java.util.Stack; + /** * Задана строка, возможно содержащая символы '(', ')', '[', ']', '{', '}'. * Проверить правильность расстановки скобок. @@ -15,7 +17,34 @@ public class SolverTask8 { * @param string Анализируемая строка. * @return true - скобки расставлены верно, иначе - false. */ - public boolean isNormalBrackets(String string) { - return false; + public boolean isNormalBrackets(String string) + { + Stack stack = new Stack(); + String open = "([{"; + String close = ")]}"; + boolean result = true; + for (char chr : string.toCharArray()) + { + if (open.indexOf(chr) != -1) + { + stack.add(chr); + } else if (close.indexOf(chr) != -1) + { + if (stack.empty() || open.indexOf(stack.lastElement()) != close.indexOf(chr)) + { + result = false; + } + if (!stack.empty()) + { + stack.pop(); + } + } + } + if (stack.size() > 0) + { + result = false; + } + + return result; } } diff --git a/src/main/java/com/epam/javacourses2016/task9/SolverTask9.java b/src/main/java/com/epam/javacourses2016/task9/SolverTask9.java index 4702747..6bff13d 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; /** * Задан файл, содержащий английские слова (без знаков препинания). @@ -9,14 +11,24 @@ * Слова, отличающиеся только регистром букв, считать одинаковыми. * Использовать класс HashSet. */ -public class SolverTask9 { +public class SolverTask9 +{ /** * Формирует множество уникальных слов, извлекая их из файла. + * * @param input Анализируемый файл. * @return Множество полученных слов. */ - public HashSet getUniqueWords(File input) { - return null; + public HashSet getUniqueWords(File input) throws FileNotFoundException + { + HashSet result = new HashSet<>(); + Scanner scanner = new Scanner(input); + while (scanner.hasNext()) + { + String word = scanner.next().toLowerCase(); + result.add(word); + } + return result; } } From 00ef8846054cfd3d0de1b2830d57e96fab00f16b Mon Sep 17 00:00:00 2001 From: Petr Tsvetkov Date: Mon, 9 Oct 2017 16:51:22 +0300 Subject: [PATCH 2/2] Tests enabled --- .../java/com/epam/javacourses2016/task8/SolverTask8Test.java | 2 +- .../java/com/epam/javacourses2016/task9/SolverTask9Test.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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();