利用PHP实现《剑指 offer》之字符串(数据结构与算法实战)

一定要认真看 分析 | 注释 | 题目要求

Question 1

题目描述:
HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。你会不会被他忽悠住?(子向量的长度至少是1)

分析:
这是典型的动态规划问题 详见动态规划
第一种方法采用了状态转移方程(我也搞不太清楚)
第二种方法更为形象
代码如下:

 $greateSum){
            $greateSum = $curSum;
        }
    }

    return $greateSum;
}

测试地址:https://www.nowcoder.com/prac...

Question 2

题目描述:
输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。

分析:
利用哈希表 每个字符的ASCII码作为key

注1:哈希查找常常用于查找一个指定值相等的记录 而不需要比较
注2: 以下函数不为全排列(即不包括字符重复的情况)

代码如下:

测试地址:https://www.nowcoder.com/prac...

Question 3

题目描述:
请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。

分析:
正则表达式

注:测试通过率不足100% 在此只提供一种思路

代码如下:

测试地址:https://www.nowcoder.com/prac...

Question 4

题目描述:
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0

分析:
符号 数字
代码如下:

测试地址:https://www.nowcoder.com/prac...

你可能感兴趣的:(动态规划,算法,acm,字符串)