Difference between revisions of "Interview Questions"

From Hawk Wiki
Jump to: navigation, search
(Algorithm Interview Problems)
(Swap 2 numbers in one line)
Line 98: Line 98:
 
echo $a." and ". $b;
 
echo $a." and ". $b;
 
//output 10 and 20
 
//output 10 and 20
 +
</pre>
 +
==Calculate degree between hour and minute hand==
 +
<pre>
 +
<?php
 +
$time=array();
 +
$time['h']=12;
 +
$time['m']=15;
 +
$time['s']=30;
 +
function clockDegree($time){
 +
$mPercent=((float)$time['m']+((float)$time['s']/60.0))/60.0;
 +
$mDegree=$mPercent*360;
 +
$hdegree=((int)$time['h']%12+(float)$mPercent)/12.0*360;
 +
echo abs($mDegree-$hdegree);
 +
}
 +
clockDegree($time);
 
</pre>
 
</pre>

Revision as of 22:20, 28 February 2012

Some Translation

n! Multiplicative

Object-oriented programming

Check here Interview_Questions(OOP)

Algorithm Interview Problems

Algorithm Problems
All about Binary search tree
All about Linked List

Regular Expression

http://www.zytrax.com/tech/web/regex.htm

C/C++

ArrayList Vs LinkedList

ArrayList: fast random access
slow at delete
memory fill up issue
LinkedList: slow random access
quick delete
no memory fill up issue
complex data structure

PHP

abstract class

Can not be Instantiable.(cannot become instant. Can only be inherited)

abstract class Fruit {
 private $color;

 abstract public function eat()

 public function setColor($c) {
  $this->color = $c;
 }
}

Single or Double Quotes?

//Sometimes people use double quotes in PHP to avoid having to use the period to separate code. For example, you could write:
$color='red';
echo "I have a $color shirt on today<br/>";
//Faster however is not always better. A better way to write this code would be:
echo 'I have a ' .$color. ' shirt on today<br/>';
echo 'I have a $color shirt on today<br/>';

Output:

I have a red shirt on today
I have a red shirt on today
I have a $color shirt on today

Avoid Mysql Injection

$_POST['username'] = 'aidan';
$_POST['password'] = "' OR ''='";
$query = "SELECT * FROM users WHERE user='{$_POST['username']}' AND password='{$_POST['password']}'";
$passwd=mysql_real_escape_string($_POST['password']);
$passwd1=addslashes($_POST['password']);
echo $passwd."<br />";
echo $passwd1."<br />";
echo ($query);

Output

\' OR \'\'=\'
\' OR \'\'=\'
SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''

This would allow anyone to log in without a valid password.

JavaScript

Closure.

<script>
function say667() {
  // Local variable that ends up within closure
  var num = 666;
  
  //var sayAlert = function() { alert(num); }
  return function() { num++; alert(num); };
}

var sayNumba = say667();
sayNumba();
sayNumba();
</script>

The example will keep var num in the memory. alert 667 and 668 on each call;

Swap 2 numbers in one line

//swap
$a=10;
$b=20;
$a=$a+$b-($b=$a);
echo $a." and ". $b."\n";
// output 20 and 10
$a^=$b^=$a^=$b; //This has a bug. You cannot do things like this $a^=$a^=$a^=$a
echo $a." and ". $b;
//output 10 and 20

Calculate degree between hour and minute hand

<?php
$time=array();
$time['h']=12;
$time['m']=15;
$time['s']=30;
function clockDegree($time){
	$mPercent=((float)$time['m']+((float)$time['s']/60.0))/60.0;
	$mDegree=$mPercent*360;
	$hdegree=((int)$time['h']%12+(float)$mPercent)/12.0*360;
	echo abs($mDegree-$hdegree);
}
clockDegree($time);