尝试 Leetcode(二)
4.26
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;
}
}
4.23
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);
}
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: