首页 > 技术文章 > 算法编程题

hanling 2018-01-17 14:03 原文

    1

  3            5

    7        9      11     

 13    15      17     19

 

第N行相加的和是多少?

 N*N*N;

 

$string = "The sunset sets at twelve o\' clock.";
$arr = [
'a' => 1,
'b' => 2,
'c' => 3,
'd' => 4,
'e' => 5,
'f' => 6,
'g' => 7,
'h' => 8,
'i' => 9,
'j' => 10,
'k' => 11,
'l' => 12,
'm' => 13,
'n' => 14,
'o' => 15,
'p' => 16,
'q' => 17,
'r' => 18,
's' => 19,
't' => 20,
'u' => 21,
'v' => 22,
'w' => 23,
'x' => 24,
'y' => 25,
'z' => 26,
];
$array = str_split(preg_replace('/\'|\\\|\s|\\./gi','',strtolower($string)));
$tmp = "";
foreach($array as $v)
{
if(!empty($v) && in_array($arr[$v],$arr)){
$tmp .= $arr[$v].' ';
}
}
dump(rtrim($tmp));

替换成数字

 

 

 

1.设有一组关键字序列{5,8,14,20,31,55,78,81,93,97,111},使用二分(折半)法查找关键字93需要进行多少次比较()

A. 2

B. 3

C. 4

D. 5

 low = 0, high = 10    mid=(low+high)/2=5
    93>55
 low = 6, high = 10    mid=(low+high)/2=8
    93 == 93
2.在股市的交易日中,假设最多可进行两次买卖(即买和卖的次数均小于等于2),规则是必须一笔成交后进行另一笔(即买-卖-买-卖的顺序进行)。给出一天中的股票变化序列,请写一个程序计算一天可以获得的最大收益。请采用实践复杂度低的方法实现。

给定价格序列prices及它的长度n,请返回最大收益。保证长度小于等于500。

测试样例:[10,22,5,75,65,80],6

返回:87

 3.共52张普通牌,牌面为2,3,4,5,6,7,8,9,10,J,Q,K,A之一,大小递增,各四张; 每人抓三张牌。两人比较手中三张牌大小,大的人获胜。

对于牌型的规则如下:

1.三张牌一样即为豹子

2.三张牌相连为顺子(A23不算顺子)

3.有且仅有两张牌一样为对子 豹子>顺子>对子>普通牌型 在牌型一样时,比较牌型数值大小(如AAA>KKK,QAK>534,QQ2>10104) 在二人均无特殊牌型时,依次比较三张牌中最大的。大的人获胜,如果最大的牌一样,则比较第二大,以此类推(如37K>89Q) 如二人牌面相同,则为平局。

输入描述:

输入两个字符串代表两个玩家的牌(如”10KQ” “354”),先输入的作为玩家1,后输入的作为玩家2

输出描述:

1 代表 玩家1赢 0 代表 平局 -1 代表 玩家2赢 -2 代表不合法的输入

输入例子:

KQ3 3Q9

10QA 6102

5810 7KK

632 74J

10102 K77

JKJ 926

68K 27A

输出例子:

4.设一组初始记录关键字序列为(49、38、65、97、76、13、27、49),则以第一个关键字49为基准而得到的一趟快速排序结果是()

A. 38,13,27,49,49,65,97,76

B. 13,27,38,49,65,76,97,49

C. 27,38,13,49,76,97,65,49

D. 27,38,13,49,97,76,65,49

 

 

 

 

推荐阅读