Jewels and Stones
給定字串 J 代表石頭中寶石的型別,和字串 S 代表你擁有的石頭。 S 中每個字元代表了一種你擁有的石頭的型別,你想知道你擁有的石頭中有多少是寶石。J 中的字母不重複,J 和 S 中的所有字元都是字母。字母區分大小寫,因此 a 和 A 是不同型別的石頭。
嘗試解法
class Solution
{
/**
* @param String $J
* @param String $S
* @return Integer
*/
function numJewelsInStones($J, $S)
{
$count = 0;
foreach (str_split($S) as $s) {
foreach (str_split($J) as $j) {
if ($s === $j) {
$count++;
break;
}
}
}
return $count;
}
}
Min Stack
設計一個支援 push,pop,top 操作,並能在常數時間內檢索到最小元素的棧。
- push(x) -- 將元素 x 推入棧中。
- pop() -- 刪除棧頂的元素。
- top() -- 獲取棧頂元素。
- getMin() -- 檢索棧中的最小元素。
嘗試解法
class MinStack
{
protected $stack;
/**
* initialize your data structure here.
*/
function __construct()
{
$this->stack = [];
}
/**
* @param Integer $x
* @return NULL
*/
function push($x)
{
$this->stack[] = $x;
}
/**
* @return NULL
*/
function pop()
{
array_pop($this->stack);
}
/**
* @return Integer
*/
function top()
{
return end($this->stack);
}
/**
* @return Integer
*/
function getMin()
{
return min($this->stack);
}
}