前提・実現したいこと
与えられた文字列Sの要素を並び替え、連続する文字のない文字列が何通りできるのかを調べる方法が分かりません。
S = "aabbcc"だと"abcabc","cabacb"などがあり、要素は全て使い切ります。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
S = "aaabbbccdeeeff" count={} for i in A: if i not in count.keys(): count[i] = 1 else: count[i] += 1 pt=0 B="w" def func(B, count): Count = copy.copy(count) for i in B[1:]: Count[i] -= 1 if Count[i] == 0: del Count[i] if Count == {}: return pt+1 cl = list(Count.keys()) for i in cl: if B[-1] == i: continue else: B += i return func(B,count)
試したこと
S内の文字数をそれぞれカウントして
一つずつ使ってみたのですが、
出来上がる文字列を記述する変数Bが結局書き換えられてしまうので、
再帰が次のパターンへと移れません。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
途中まで、あるいは、こんな感じなのでは? というようなもので構わないので、あなたが理解できる範囲のソースをぜひ添えましょう。
コードはせめて読めるようにしましょう。 https://teratail.com/help/question-tips#questionTips3-5-1 https://teratail.com/help#about-markdown コードの前後を```で括ります。選択して <code> ボタンボタンでもできます。
イロハのイから教えて頂き、ありがとうございます。
競プロかなにかの問題でしょうか。
与えられた文字列の長さに制限等はありますか。(何文字以下など)
プログラミングの授業での問題です。
1=< |S| =<25です。
入力が"aab"の場合は、答えは"aba"の1個ですか?
それとも"a"を異なるものとして数えて2個ですか?