Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .idea/compiler.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions .idea/libraries/Gradle__com_beust_jcommander_1_48.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions .idea/libraries/Gradle__junit_junit_4_10.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions .idea/libraries/Gradle__org_apache_ant_ant_1_7_0.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 9 additions & 0 deletions .idea/libraries/Gradle__org_apache_ant_ant_launcher_1_7_0.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 9 additions & 0 deletions .idea/libraries/Gradle__org_beanshell_bsh_2_0b4.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions .idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_1.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions .idea/libraries/Gradle__org_testng_testng_6_9_9.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions .idea/libraries/Gradle__org_yaml_snakeyaml_1_15.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 13 additions & 0 deletions .idea/modules/javacourses2016.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 13 additions & 0 deletions .idea/modules/javacourses2016_main.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

23 changes: 23 additions & 0 deletions .idea/modules/javacourses2016_test.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

79 changes: 73 additions & 6 deletions src/main/java/com/epam/javacourses2016/task8/SolverTask8.java
Original file line number Diff line number Diff line change
@@ -1,21 +1,88 @@
package com.epam.javacourses2016.task8;

import java.util.ArrayList;
import java.util.Stack;

/**
* Задана строка, возможно содержащая символы '(', ')', '[', ']', '{', '}'.
* Проверить правильность расстановки скобок.
* При реализации использовать стек.
*/
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<Character> stc = new Stack<>();
ArrayList<Character> 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();
}
}

17 changes: 14 additions & 3 deletions src/main/java/com/epam/javacourses2016/task9/SolverTask9.java
Original file line number Diff line number Diff line change
@@ -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;

/**
* Задан файл, содержащий английские слова (без знаков препинания).
Expand All @@ -16,7 +18,16 @@ public class SolverTask9 {
* @param input Анализируемый файл.
* @return Множество полученных слов.
*/
public HashSet<String> getUniqueWords(File input) {
return null;
public HashSet<String> getUniqueWords(File input)throws FileNotFoundException {
Scanner sc=new Scanner(input);
HashSet<String> hs=new HashSet<>();
while(sc.hasNextLine()){
for(String str:sc.nextLine().split("\\s+")){
hs.add(str.toLowerCase());
}
}
return hs;
}
}

}

Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down