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