PHP ZCE mock test, interview preparation, daily lessons under chalk talk

Thursday, November 15, 2012

jQuery check if an element with id exists

How would you if an element with particular id exists on the page?


$('#element').length == 0; // no element found

Tuesday, November 22, 2011

JavaScript Name Spacing

Why do you think JavaScript name spacing is important?


JavaScript name spacing helps avoiding variable name conflicts. It becomes important when a program written by one developer mingles with the program written by others, and the two programs share variables.

PHP - Programming Task : print anagrams of a listOfStrings

Lets say you have an array that contains a number of strings (perhaps char * a[100]). Each string is a word from  the dictionary. Your task, described in high-level terms, is to devise a way to determine and display all of the anagrams within the array (two words are anagrams if they contain the same characters; for example, 'tales' and 'slate' are anagrams.)

You are expect to create a function printAnagrams( listOfStrings[] )

Input Array['abroad', 'aces', 'about', 'aboard', 'case']

Output:
abroad, aboard
aces, case





Solution:

<?php
$listOfStrings = array('abroad', 'aces', 'about', 'aboard', 'case');
printAnagrams($listOfStrings);
function printAnagrams($listOfStrings)
{
$numOfStrings = count($listOfStrings);
for($i=0;$i < $numOfStrings; $i++)
{
$sortedString = sortString($listOfStrings[$i]);
for($j=$i+1; $j< $numOfStrings; $j++)
{
$nextSortedString = sortString($listOfStrings[$j]);
//if sorted strings match they are anagrams
//identity operator to avoid matching between false and 0
if(strcmp($sortedString, $nextSortedString) === 0)
{
echo "\nAnagrams: ".$listOfStrings[$i]." , ".$listOfStrings[$j];
}
}
}
}
function sortString($stringValue)
{
$stringToArray = str_split($stringValue);
sort($stringToArray);
$sortedString = implode('',$stringToArray);
return $sortedString;
}
?>

Monday, November 21, 2011

PHP Programming Task - getFinalAmount : betting strategy for game rounds

In a game, you bet using the following strategy. Whenever you lose a bet, you double the value of the bet for the next round. Whenever you win, the bet for the next round will be one dollar.

For example, if you start with 20 dollars, and you win the bet in the first round, lose the bet in the next two rounds and then win the bet in the fourth round, you will end up with 20+1-1-2+4 = 22 dollars.

You are expected to complete the function, getFinalAmount, which takes two arguments. The first argument is an integer initialAmount which is the initial money we amount we have when we start the betting. The second argument is a string betResultsThe ith character of outcome will be either 'W' (win) or 'L' (lose), denoting the result of the ith round.
Your function should return the amount of money you will have after all the rounds are played. If at some point you don't have enough money in your account to cover the value of the bet, you must stop and return the sum you have at that point.


Sample Test Cases: 

Input #00:
12
WWWWWWWW

Output #00:
20

Explanation: 
The initial amount is 12, for every win, you gain 1 dollar.
There are totally 8 consecutive wins and no losses, hence total money gained = 12 + 8 = 20

Input #01:
15
LLLWLLLL

Output #01:
1

Explanation:
The initial amount is 15. As stated in the problem, the amount of bet doubles for every loss.
1st round - Loss: 15-1 = 14
2nd round - Loss: 14-2 = 12 (Bet doubles)
3rd round - Loss: 12-4 = 8
4th round - Win: 8 + 8 = 16
5th round - Loss:16-1 = 15 (Since the previous bet was a win, this bet has a value of 1 dollar)
6th round - Loss: 15-2 = 13
7th round - Loss: 13-4 = 9
8th round - Loss: 9-8 = 1






Solution:



<?php
echo "\nSample #1 : ".getFinalAmount(20,'WLLW');
echo "\nSample #2 : ".getFinalAmount(12,'WWWWWWWW');
echo "\nSample #3 : ".getFinalAmount(15,'LLLWLLLL');


function getFinalAmount($initialAmount, $betResultsThe)
{
$betResults = str_split($betResultsThe);
$finalAmount = $initialAmount;
$betCount = count($betResults);
$betAmount = 1;
foreach($betResults as $i => $betResult)
{
if($betResult == 'W')
{
$finalAmount += $betAmount;
$betAmount = 1;
}
elseif($betResult == 'L')
{
if($finalAmount - $betAmount <=0 )
return $finalAmount;
$finalAmount -= $betAmount;
$betAmount = 2*$betAmount;
}
else
{
return false;
}
}
return $finalAmount;
}
?>