Lesson 6 – Leader – EquiLeader demo task solution code written in php. Gives 100/100 score at the time of publishing.
The description of the problem is copyrighted, so please see the following link for it: https://codility.com/demo/take-sample-test/equi_leader
Solution in php:
function solution($A) {
$cnt = count($A);
$equi_leaders = 0;
if(!$cnt){
return $equi_leaders;
}
$leader = $A[0];
$ctr = 1;
for($i = 1; $i < $cnt; $i++){
if($A[$i] == $leader){
$ctr++;
}
else{
$ctr--;
}
if($ctr == 0){
$ctr = 1;
$leader = $A[$i];
}
}
$total = 0;
foreach($A as $i){
if($i == $leader){
$total++;
}
}
if($total <= ($cnt / 2)){
return 0;
}
$ldr_count = 0;
for($i = 0; $i < $cnt; $i++){
if($A[$i] == $leader){
$ldr_count++;
}
$leaders_in_right_part = ($total - $ldr_count);
if($ldr_count > ($i + 1) / 2 && $leaders_in_right_part > ($cnt - $i - 1) / 2){
$equi_leaders++;
}
}
return $equi_leaders;
}
Given “AS IS”, can be ported from other languages from solutions found on the internet, please use with care.
Please note: we think that codility.com does not give a correct assessment of your real-world programming skills. For instance, reading the below would bring more understanding why: http://codility-test-questions.blogspot.com/2013/01/my-experience-with-codility-test.html
