一部の文字が連続して繰り返される英数字の文字列を指定すると、繰り返しのない文字を散らばらなければなりません。繰り返し文字から隣接する等しい文字がない可能なすべての文字列を返します。文字列
input: aaaabbbcdd11
Output: abababacd1d1 or any other valid combination.
このような組み合わせがない場合、出力はありません。
この質問はインタビューで私に聞かれました。私はまだこのアルゴリズムを解決することができません。これが正しい質問であるかどうかわからない。私はこれを解決するために使用できる適切なアルゴリズム/データ構造を知るのが非常に面倒です。
ハッシュ(マップ)を作成して、すべての文字の数を維持できるようにしようとしました。
str = "aaaabbbcdd11"
hashChrs = {}
for item in list(str):
if item in hashChrs:
hashChrs[item] = hashChrs[item] + 1
else:
hashChrs[item] = 1
print hashChrs
{ '':4 '1':2 'C':1、 'B':3、 'D':2}
最高周波数文字カウントであろう合計文字の半分以上が出力されません。
は今、私はマップ
あなたは何をしようとしましたか/どのようにこれを解決しようとしましたか? – depperm