-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmealy_minus.php
37 lines (36 loc) · 911 Bytes
/
mealy_minus.php
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
<?php
function mealy_minus($inputs) {
$state = "start";
$diff = 0;
$first = true;
$num_buffer = '';
foreach (str_split($inputs) as $i) {
if ($state == "start") {
if ($i == "-") {
$state = "subtract";
} else {
$num_buffer .= $i;
}
} elseif ($state == "subtract") {
if ($first) {
$diff = intval($num_buffer);
$first = false;
} else {
$diff -= intval($num_buffer);
}
$num_buffer = '';
$state = "start";
}
}
if ($num_buffer !== '') {
if ($first) {
$diff = intval($num_buffer);
$first = false;
} else {
$diff -= intval($num_buffer);
}
}
return $diff;
}
$inputs = "100-50-25";
echo mealy_minus($inputs) . PHP_EOL; // 25