<?php $input = <<<EOT Step S must be finished before step G can begin. Step E must be finished before step T can begin. Step G must be finished before step A can begin. Step P must be finished before step Z can begin. Step L must be finished before step Z can begin. Step F must be finished before step H can begin. Step D must be finished before step Y can begin. Step J must be finished before step Y can begin. Step N must be finished before step O can begin. Step R must be finished before step Y can begin. Step Y must be finished before step W can begin. Step U must be finished before step T can begin. Step H must be finished before step W can begin. Step T must be finished before step Z can begin. Step Q must be finished before step B can begin. Step O must be finished before step Z can begin. Step K must be finished before step W can begin. Step M must be finished before step C can begin. Step A must be finished before step Z can begin. Step C must be finished before step X can begin. Step I must be finished before step V can begin. Step V must be finished before step W can begin. Step W must be finished before step X can begin. Step Z must be finished before step B can begin. Step X must be finished before step B can begin. Step D must be finished before step M can begin. Step S must be finished before step Z can begin. Step A must be finished before step B can begin. Step V must be finished before step Z can begin. Step Q must be finished before step Z can begin. Step O must be finished before step W can begin. Step S must be finished before step E can begin. Step L must be finished before step B can begin. Step P must be finished before step Y can begin. Step K must be finished before step M can begin. Step W must be finished before step Z can begin. Step Y must be finished before step Q can begin. Step J must be finished before step M can begin. Step U must be finished before step H can begin. Step Y must be finished before step U can begin. Step D must be finished before step A can begin. Step C must be finished before step V can begin. Step G must be finished before step J can begin. Step O must be finished before step C can begin. Step P must be finished before step H can begin. Step M must be finished before step B can begin. Step T must be finished before step C can begin. Step A must be finished before step W can begin. Step C must be finished before step B can begin. Step Q must be finished before step I can begin. Step O must be finished before step A can begin. Step N must be finished before step H can begin. Step Q must be finished before step C can begin. Step G must be finished before step W can begin. Step V must be finished before step X can begin. Step A must be finished before step V can begin. Step S must be finished before step C can begin. Step O must be finished before step M can begin. Step E must be finished before step L can begin. Step D must be finished before step V can begin. Step P must be finished before step N can begin. Step O must be finished before step I can begin. Step P must be finished before step K can begin. Step N must be finished before step A can begin. Step A must be finished before step X can begin. Step L must be finished before step A can begin. Step L must be finished before step T can begin. Step I must be finished before step X can begin. Step N must be finished before step C can begin. Step N must be finished before step W can begin. Step Y must be finished before step M can begin. Step R must be finished before step A can begin. Step O must be finished before step X can begin. Step G must be finished before step T can begin. Step S must be finished before step P can begin. Step E must be finished before step M can begin. Step E must be finished before step A can begin. Step E must be finished before step W can begin. Step F must be finished before step D can begin. Step U must be finished before step C can begin. Step R must be finished before step Z can begin. Step A must be finished before step C can begin. Step F must be finished before step K can begin. Step L must be finished before step V can begin. Step F must be finished before step T can begin. Step W must be finished before step B can begin. Step Y must be finished before step A can begin. Step D must be finished before step T can begin. Step S must be finished before step V can begin. Step Y must be finished before step O can begin. Step K must be finished before step B can begin. Step N must be finished before step V can begin. Step Y must be finished before step I can begin. Step Z must be finished before step X can begin. Step E must be finished before step B can begin. Step P must be finished before step O can begin. Step D must be finished before step R can begin. Step Q must be finished before step X can begin. Step E must be finished before step K can begin. Step J must be finished before step R can begin. Step L must be finished before step N can begin. EOT; $input_strings_array = explode(PHP_EOL, $input); $before_after_pairs = []; foreach ($input_strings_array as $input_string) { preg_match("/Step ([A-Z]) must be finished before step ([A-Z]) can begin\./", $input_string, $steps); $before_after_pairs[] = ['before'=>$steps[1], 'after' => $steps[2]]; } $all_pairs = $before_after_pairs; $str = ''; $z = 26; $x = 0; $letters_array = []; while ($x < 26) { $possible_letters = []; foreach ($before_after_pairs as $pair) { $has_match = false; foreach ($before_after_pairs as $pair2) { if ($pair['after'] === $pair2['before']) { $has_match = true; } } if ($has_match === false) { $possible_letters[] = $pair['after']; } } $last_letters = array_unique($possible_letters); rsort($last_letters); foreach ($last_letters as $letter) { $letters_array[$z] = $letter; $z--; foreach($before_after_pairs as $key => $pair) { if ($pair['after'] == $letter) { unset($before_after_pairs[$key]); } } } $x++; } $beginning_letters = []; foreach(range('A','Z') as $letter) { if (!in_array($letter, $letters_array)) { $beginning_letters[] = $letter; } } rsort($beginning_letters); foreach ($beginning_letters as $letter) { $letters_array[$z] = $letter; $z--; } ksort($letters_array); $output = implode($letters_array); echo $output; echo "\r\n\r\n"; foreach ($all_pairs as $pair) { echo $pair['before'] . " before " . $pair['after'] . " = "; if(preg_match("/" . $pair['before'] . ".*" . $pair['after'] . "/", $output)) { echo "true"; } else { echo "false"; } echo "\r\n\r\n"; }
You have javascript disabled. You will not be able to edit any code.
Value for `_results` contains invalid data `array`