【阿里云高校计划】Day6 jerry的考验--算法入门

Jerry的考验----算法入门

题目

【阿里云高校计划】Day6 jerry的考验--算法入门_第1张图片

思路分析

  1. 首先,依照高中数学的排列组合原理,求出将这个字符串取出一半有多少种不同的取法
    【阿里云高校计划】Day6 jerry的考验--算法入门_第2张图片
    这个是PHP的写法,阿里云要求java,但是我之前没接触过java,所以还是拿PHP写了。
  2. 然后。抽签
    【阿里云高校计划】Day6 jerry的考验--算法入门_第3张图片
    这个函数的目的就是把所有可能的抽签情况给模拟出来
    【阿里云高校计划】Day6 jerry的考验--算法入门_第4张图片
    (0,1)(0,2)(0,3)(1,2)…这样给模拟出来,并且处理成一个二维数组
  3. 处理数据
    【阿里云高校计划】Day6 jerry的考验--算法入门_第5张图片
  4. 循环枚举
    【阿里云高校计划】Day6 jerry的考验--算法入门_第6张图片
    输出匹配完整的数目。

目前存在的问题

  1. 不是java写的,不符合规范。无法提交代码。
  2. 目前只能处理4个字符。主要是考虑六个,八个字符的处理,抽签函数的复杂度会急剧上升。PHP目前好像没有什么好的动态添加多维数组的方式。我目前没找到。有其他想法的同学,也请麻烦在评论区说一下。我学习一下。

其他解决思路

【阿里云高校计划】Day6 jerry的考验--算法入门_第7张图片
这是阿里云官方的解决思路,大概意思就是字符串是对称的,那么根据左边的结果,可以判断右边的另一组字符串是什么状态。但是我找不到好的实现方式。第一次尝试用Java写东西。在阿里云的在线平台上,使劲报错。。。。先这样吧。放假了,再把这个东西用java实现出来。。。

加油!!!!

你可能感兴趣的:(算法,阿里云)