tasks_from_interview - PHP Online
Form of PHP Sandbox
Enter Your PHP code here for testing/debugging in the Online PHP Sandbox. As in the usual PHP files, you can also add HTML, but do not forget to add the tag <?php
in the places where the PHP script should be executed.
Result of php executing
Full code of tasks_from_interview.php
- <?php
- // Реализуй метод, определяющий, является ли одна строка перестановкой другой.
- // Под перестановкой понимаем любое изменение порядка символов.
- // Результатом функции должно быть булевское значение TRUE или FALSE
- // Нельзя использовать функции сортировки.
- function f2(string $str1, string $str2):bool
- {
- $str1 = str_split($str1);
- $str2 = str_split($str2);
- if(count($str1) != count($str2)){
- return false;
- }
- $result = array_diff($str1, $str2);
- if(!$result){
- return true;
- }
- else {
- return false;
- }
- }
- // Дано натуральное число N. Реализуйте рекурсивную функцию которая
- // определит является ли число N точной степенью двойки.
- // Фукнция должна принимать 1 аргумент, натуральное число N
- // Результатом функции должно быть булевское значение TRUE или FALSE
- // isPowerOfTwo(64) = true
- function isPowerOfTwo(int $n):bool
- {
- if($n==2){
- return true;
- }
- else if($n%2 == 0){
- return isPowerOfTwo($n/2);
- }
- else {
- return false;
- }
- }
- // Напиши функцию, которая сортирует массив чисел по возрастанию любым способом.
- // Нельзя использовать встроенные в язык функции сортировки.
- // Результатом функции должен быть отсортированный массив
- // mysort([9,4,1,5]) -> [1, 4, 5, 9]
- function mysort(array $arr): array
- {
- for($j = 0; $j<count($arr)-1; $j++)
- {
- for ($i = 0; $i<count($arr)-1; $i++){
- if($arr[$i]>$arr[$i+1]){
- array_swap($arr, $i, $i+1);
- }
- }
- }
- return $arr;
- }
- function array_swap(array &$arr, $key1, $key2):bool
- {
- if(isset($arr[$key1]) && isset($arr[$key2])){
- list($arr[$key1], $arr[$key2]) = array($arr[$key2], $arr[$key1]);
- return true;
- }
- return false;
- }
- // Реализуй рекурсивную функцию, которая вычисляет cумму цифр заданного числа.
- // Фукнция должна принимать 1 аргумент, натуральное число N.
- // При решении этой задачи нельзя использовать строки, массивы.
- // Результатом функции должно быть натуральное число
- // sumOfNumbers(1502) = 8
- function sumOfNumbers(int $n): int
- {
- if ($n < 10) return $n;
- else return $n%10 + sumOfNumbers($n/10);
- }
- // Реализуй алгоритм, обнаруживающий в массиве все пары целых чисел,
- // сумма которых равна заданному значению.
- // Результатом функции должен быть массив содержащий в себе найденные пары
- // pairs([2,4,5,7,1,3,8], 9) -> [[2,7], [4,5], [1,8]]
- function pairs(array $arr, int $sum): array
- {
- $arr = mysort($arr);
- $first = 0;
- $last = count($arr) - 1;
- $res_arr = [];
- while($first < $last){
- $res_sum = $arr[$first] + $arr[$last];
- if ($res_sum == $sum) {
- array_push($res_arr, [$arr[$first], $arr[$last]]);
- $first++;
- $last--;
- } else {
- if ($res_sum < $sum) $first++;
- else $last--;
- }
- }
- return $res_arr;
- }
File Description
- tasks_from_interview
- PHP Code
- 29 Apr-2022
- 3.7 Kb
You can Share it:
Latest PHP Pastes