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();