3
21/10/2024 1:20 pm
Topic starter
Write a program, which reads an array of integers from the console and receives commands, which manipulate the array. Your program may receive the following commands:
- Delete {element} – delete all elements in the array, which are equal to the given element
- Insert {element} {position} – insert element and the given position
You should stop the program when you receive the command Odd or Even. If you receive Odd : print all odd numbers in the array separated with single whitespace, otherwise print the even numbers.
Examples:
1 Answer
2
21/10/2024 1:21 pm
Here is my solution:
<?php $arr = explode(" ", readline()); $input = readline(); while (true) { $args = explode(" ", $input); $command = $args[0]; if ($command == "Delete") { $element = $args[1]; while (array_search($element, $arr) !== false) { $index = array_search($element, $arr); array_splice($arr, $index, 1);//remove } } else if ($command == "Insert") { $element = $args[1]; $position = $args[2]; if ($position >= 0 && $position <= count($arr)) { array_splice($arr, $position, 0, $element);//replace } } if ($input == "Odd" || $input == "Even") { $reminder = 0; if ($input === "Odd") { $reminder = 1; } for ($i = 0; $i < count($arr); $i++) { if ($arr[$i] % 2 == $reminder) { echo "$arr[$i] "; } } echo PHP_EOL; break; } $input = readline(); }