【阿里云高校计划】Day6 jerry的考验--算法入门
Jerry的考验----算法入门
题目
思路分析
- 首先,依照高中数学的排列组合原理,求出将这个字符串取出一半有多少种不同的取法
这个是PHP的写法,阿里云要求java,但是我之前没接触过java,所以还是拿PHP写了。 - 然后。抽签
这个函数的目的就是把所有可能的抽签情况给模拟出来
(0,1)(0,2)(0,3)(1,2)…这样给模拟出来,并且处理成一个二维数组 - 处理数据
- 循环枚举
输出匹配完整的数目。
目前存在的问题
- 不是java写的,不符合规范。无法提交代码。
- 目前只能处理4个字符。主要是考虑六个,八个字符的处理,抽签函数的复杂度会急剧上升。PHP目前好像没有什么好的动态添加多维数组的方式。我目前没找到。有其他想法的同学,也请麻烦在评论区说一下。我学习一下。
其他解决思路
这是阿里云官方的解决思路,大概意思就是字符串是对称的,那么根据左边的结果,可以判断右边的另一组字符串是什么状态。但是我找不到好的实现方式。第一次尝试用Java写东西。在阿里云的在线平台上,使劲报错。。。。先这样吧。放假了,再把这个东西用java实现出来。。。