<?php
class Matrix{
/**
•@param 2D array $matrix
•
•Prints distinct elements common to all rows of the matrix */
public static function getDistinctElementsCommonToAllRows($matrix){
// A hash map to store count of elements
$hashmap = array();
$selectedHash = array();
$rows = count($matrix);
$cols = count($matrix[0]);
for ($i = 0; $i < $rows; $i++) {
// Increment the count of first
// element of the row
if(array_key_exists($matrix[$i][0],$hashmap)){
$hashmap[$matrix[$i][0]] = $i+1;
}
// Starting from the second element
// of the current row
for ($j = 1; $j < $cols; $j++) {
// If current element is different from
// the previous element i.e. it is appearing
// for the first time in the current row
if(array_key_exists($matrix[$i][$j],$hashmap)){
if ($matrix[$i][$j] !== $matrix[$i][$j - 1]){
$hashmap[$matrix[$i][$j]] = $i+1;
}
}else{
if ($matrix[$i][$j] !== $matrix[$i][$j - 1]){
$hashmap[$matrix[$i][$j]] = $i;
}
}
}
}
foreach($hashmap as $key => $val){
if($val == $rows){
$selectedHash[] = $key;
}
}
return $selectedHash;
}
}
$mat1 = [[2, 1, 4, 3],[1, 2, 3, 2],[3, 6, 2, 3],[5, 2, 5, 3]];
$mat2 = [[12, 1, 14, 3, 16],[14, 2, 1, 3, 35],[14, 1, 14, 3, 11],[14, 25, 3, 2, 1],[1, 18, 3, 21, 14]];
print_r (Matrix::getDistinctElementsCommonToAllRows($mat1));
Print_r('<br>');
print_r (Matrix::getDistinctElementsCommonToAllRows($mat2));
<?php Class LRS{ /** •@param array $texts •Prints longest repeated substrings for each text */ public static function getAllLRS($texts){ $stringArr = array(); foreach($texts as $string){ $stringArr[] = self::LongestRepeatedSubstring($string); } return $stringArr; } public function LongestRepeatedSubstring($string){ if ($string == null) return null; $string_length = strlen($string); $substrings = array(); for ($i=0; $i < $string_length; $i++){ $substrings[$i] = substr($string, $i); } sort($substrings); $result = ""; for ($i = 0; $i < $string_length - 1; $i++){ $lcs = self::LongestCommonString($substrings[$i], $substrings[$i ...
Comments
Post a Comment