[プログラマー]スキルツリー


スキルツリー


問題の説明


先行スキルとは、あるスキルを学ぶ前に学ばなければならないスキルです.
たとえば、現在のスキルの順序が스파크->라이트닝볼트->썬더の場合、ライターを学習する前にライターを学習する必要があります.
以上の手順にない他のスキル(癒しなど)は順番に学ぶことができます.したがって、스파크->힐링->라이트닝볼트->썬더のようなスキルツリーを使用することができるが、썬더->스파크または라이트닝볼트->스파크->힐링->썬더のようなスキルツリーを使用することはできない.
前置スキル順序スキルとプレイヤーが作成したスキルツリーの配列スキルtreeをパラメータとして指定する場合は、できるだけスキルツリーの数を返すsolution関数を作成します.

せいげんじょうけん

  • スキルはアルファベット大文字でマークされ、すべての文字列はアルファベット大文字のみで構成されています.
  • スキル順序とスキルツリーは文字列で表されます.
    たとえば、
  • の場合は、「CBD」とマークします.
  • 前置技能順序技能の長さは1以上26以下であり、技能は繰り返してはならない.
  • skill treesは、長さが1または20未満の配列である.
  • skill treesの要素は、スキルを表す文字列です.
  • skill treesの要素は、2または26より長い文字列であり、このスキルは繰り返しません.
  • I/O例

    skill = 'CBD'
    skill_trees = ["BACDE", "CBADF", "AECB", "BDA"]
    
    return 2
    C->B->D

    方法


    うん.Python for else文を検索中に発見された問題...
    まず考える必要のないスキルはスキルを木から消す(?)はい.
    たとえば
    skill = "CBD"
    skill_tree_1 = "AECB"
    skill_tree_2 = "BDA"
    skill_tree_3 = "DCKF"
    日時
    (先行スキル順)スキルツリーから削除C,B,Dではないスキル~
    skill_tree_1 = "CB"
    skill_tree_2 = "BD"
    skill_tree_3 = "DC"
    skill変数に割り当てられた「CBD」をリストインデックス化します.
    0 = C
    1 = B
    2 = D
    はい.
    また,スキルツリー変数に割り当てられたスキルリストをインデックス化するとしたら?
    skill_tree_1 : 0 = C, 1 = B
    skill_tree_2 : 0 = B, 1 = D
    skill_tree_3 : 0 = D, 1 = C
    あ、インデックスは必ず同じですか?