算法二十

音乐许可

算法描述

  • 在线音乐服务通常都有许可,一个许可通常授权给3台计算机,授权给计算机A的许可,计算机A可以将该许可转让给B,但不可以转让回头。
  • 作为在线音乐的后台服务提供者,你必须记录许可转让日志log
  • 例如,“ABCDABC”是一条转让日志,每个大写字母代表一台电脑
  • 算法要求找到非法授权许可
  • 例如,“ABCDABC”这条日志,A、B、C三台可以认为正常许可,D可以认为是ABC中的某一台转让的许可,之后AB也可认为是正常的许可,但出现C时,可以判断C为非法许可。算法要求找出这里的C

参数定义

  • 类名 MusicLicenses
  • 方法 audit
  • 输入参数 string
  • 输出 int
  • 方法声明 int audit(string log)

限制条件

  • log包含[1, 50]个元素

例子

  • 输入
    • log:”ABCBAD”
  • 输出
    • -1

测试实例

  • 实例一

    • 输入

      • ”ABCDABCD”
    • 输出

      • 6
  • 实例二

    • 输入
      • ”X”
    • 输出
      • -1
  • 实例三

    • 输入
      • ”ABCDEFGHIJKLMNOPQRSTUVWXYZ”
    • 输出
      • -1
  • 实例四

    • 输入
      • ”AVERYUNUSUALACCESSPATTERNINDEED”
    • 输出
      • 15
点赞