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
33 changes: 31 additions & 2 deletions src/main/java/com/epam/javacourses2016/task8/SolverTask8.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.epam.javacourses2016.task8;

import java.util.Stack;

/**
* Задана строка, возможно содержащая символы '(', ')', '[', ']', '{', '}'.
* Проверить правильность расстановки скобок.
Expand All @@ -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<Character> stack = new Stack<Character>();
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;
}
}
18 changes: 15 additions & 3 deletions src/main/java/com/epam/javacourses2016/task9/SolverTask9.java
Original file line number Diff line number Diff line change
@@ -1,22 +1,34 @@
package com.epam.javacourses2016.task9;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.HashSet;
import java.util.Scanner;

/**
* Задан файл, содержащий английские слова (без знаков препинания).
* Требуется выделить все различные слова.
* Слова, отличающиеся только регистром букв, считать одинаковыми.
* Использовать класс HashSet.
*/
public class SolverTask9 {
public class SolverTask9
{

/**
* Формирует множество уникальных слов, извлекая их из файла.
*
* @param input Анализируемый файл.
* @return Множество полученных слов.
*/
public HashSet<String> getUniqueWords(File input) {
return null;
public HashSet<String> getUniqueWords(File input) throws FileNotFoundException
{
HashSet<String> result = new HashSet<>();
Scanner scanner = new Scanner(input);
while (scanner.hasNext())
{
String word = scanner.next().toLowerCase();
result.add(word);
}
return result;
}
}
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