-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtask1.php
More file actions
105 lines (95 loc) · 2.17 KB
/
task1.php
File metadata and controls
105 lines (95 loc) · 2.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
<?php
class Brackets
{
public function isBracketSequenceCorrect($str)
{
$true = 'true';
$false = 'false';
$strlen = strlen($str);
if ($strlen % 2 == 1)
return $false;
$stack = array();
$stackSize = 0;
$openBrackets = array('{','[','(');
$closeBrackets = array('}',']',')');
$bracketsMatches = array(
')'=>'(',
'}'=>'{',
']'=>'[');
for ($i = 0; $i < $strlen; $i++) {
if (in_array($str[$i], $openBrackets))
{
array_push($stack, $str[$i]);
$stackSize++;
}
else
if (in_array($str[$i], $closeBrackets))
{
if ($stackSize-- == 0)
return $false;
if ($bracketsMatches[$str[$i]] != array_pop($stack))
return $false;
}
else
return $false;
}
if ($stackSize == 0)
return $true;
return $false;
}
/*
public function isBracketSequenceCorrectTEST($str)
{
return strlen($str) > strlen($str = str_replace(array('{}','()','[]') , '' , $str)) ? $this->isBracketSequenceCorrectTEST($str) : strlen($str)==0;
}
public function TEST($str) {
echo $str.' ';
if ($this->isBracketSequenceCorrect($str)=='true' && $this->isBracketSequenceCorrectTEST($str) ||
$this->isBracketSequenceCorrect($str)=='false' && !$this->isBracketSequenceCorrectTEST($str))
echo 'OK<br />';
else
echo 'NOT OK<br />';
}
*/
}
/*
$obj = new Brackets();
$obj->TEST('()');
$obj->TEST('abc');
$obj->TEST('');
$obj->TEST('(');
$obj->TEST(')');
$obj->TEST('((');
$obj->TEST('()');
$obj->TEST('))');
$obj->TEST(')(');
$obj->TEST('[]');
$obj->TEST('}{');
$obj->TEST('{}');
$obj->TEST('(((');
$obj->TEST(')))');
$obj->TEST('((((');
$obj->TEST('((()');
$obj->TEST('(()(');
$obj->TEST('(())');
$obj->TEST('()((');
$obj->TEST('()()');
$obj->TEST('()))');
$obj->TEST(')(((');
$obj->TEST(')(()');
$obj->TEST(')()(');
$obj->TEST(')())');
$obj->TEST('))((');
$obj->TEST('))()');
$obj->TEST(')))(');
$obj->TEST('))))');
$brackets = array('(','{','[',')','}',']');
for ($i1=0; $i1<6; $i1++) {
for ($i2=0; $i2<6; $i2++) {
for ($i3=0; $i3<6; $i3++) {
for ($i4=0; $i4<6; $i4++) {
$test = $brackets[$i1].$brackets[$i2].$brackets[$i3].$brackets[$i4];
$obj->TEST($test);
}}}}
*/
?>