質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

1回答

1310閲覧

与えられた文字列から同じ文字が連続しない文字列を作成する

Ezon

総合スコア8

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/05/31 05:28

編集2019/05/31 05:42

前提・実現したいこと

与えられた文字列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/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

quickquip

2019/05/31 05:36

途中まで、あるいは、こんな感じなのでは? というようなもので構わないので、あなたが理解できる範囲のソースをぜひ添えましょう。
Ezon

2019/05/31 05:44

イロハのイから教えて頂き、ありがとうございます。
tiitoi

2019/05/31 05:58 編集

競プロかなにかの問題でしょうか。 与えられた文字列の長さに制限等はありますか。(何文字以下など)
Ezon

2019/05/31 06:11

プログラミングの授業での問題です。 1=< |S| =<25です。
can110

2019/07/28 09:18

入力が"aab"の場合は、答えは"aba"の1個ですか? それとも"a"を異なるものとして数えて2個ですか?
guest

回答1

0

文字列の組み合わせは下記で得られます。

import itertools p = itertools.permutations("aabc") >>> for v in p: print(v)

上記の中に同じ文字の連続があるかどうかを調べればよいと思います。

投稿2019/07/28 08:31

meg_

総合スコア10579

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問