アルファベットがN
の記号で、このアルファベットの長さがすべてM
であるとします。 Scalaは標準ライブラリ関数を提供していますか?与えられたアルファベット以上の長さのすべての文字列を列挙する標準関数
0
A
答えて
3
another answerからインスピレーションを取る:
val letters = Seq("a", "b", "c")
val n = 3
Iterable.fill(n)(letters) reduceLeft { (a, b) =>
for(a<-a;b<-b) yield a+b
}
Seq[java.lang.String] = List(aaa, aab, aac, aba, abb, abc, aca, acb, acc, baa, bab, bac, bba, bbb, bbc, bca, bcb, bcc, caa, cab, cac, cba, cbb, cbc, cca, ccb, ccc)
を文字列以外の何かを操作するには:
val letters = Seq(1, 2, 3)
Iterable.fill(n)(letters).foldLeft(List(List[Int]())) { (a, b) =>
for (a<-a;b<-b) yield(b::a)
}
余分な型注釈の必要性が少し面倒ですが、それは(それなしでは動作しません。誰かが別の方法を知らない限り)。
2
別の解決策:
val alph = List("a", "b", "c")
val n = 3
alph.flatMap(List.fill(alph.size)(_))
.combinations(n)
.flatMap(_.permutations).toList
更新:あなたは出力に文字列のリストを取得したい場合は、alph
は文字列でなければなりません。
val alph = "abcd"
+0
'n 'が' alph'のサイズより大きい場合、これはうまくいかないようです。例: 'alph = List(0、1)'、 'n = 3'は、期待される' 8'とは対照的に、6つのシーケンスしか生成しません。 – dsg
関連する問題
- 1. 与えられた文字列長の部分文字列の可変数をサンプルする関数
- 2. Pythonで与えられた文字列の最長アルファベット部分文字列を出力する方法は?
- 3. 与えられた文字列中の各文字の数
- 4. 与えられた長さの文字列のためのタイプ/インタフェース
- 5. 与えられたフォントと矩形の文字列長を取得する
- 6. 与えられたハミング距離内のすべての文字列を生成
- 7. 標準の.NETサイド列挙
- 8. 与えられた文字列の要素の数を数えます。
- 9. 標準Cの文字列から文字を削除する
- 10. python:与えられた文字列からのランダムな文字
- 11. 与えられた文字列の正確な数字を一致させる
- 12. 標準のC++文字列を文字列に変換する^
- 13. データが与えられた文字列
- 14. 文字列のアルファベット順とアルファベット順の並べ替え '
- 15. が何を上に与えられたテキストで文字列リソース
- 16. Python:データフレームの文字列の与えられた位置の次の文字を取得する関数
- 17. アルファベット順にmysql-queryを注文すると、数字に文字列が与えられますか?
- 18. 返され、次のJSON文字列が与えられたJava
- 19. 文字列内のアルファベット文字の頻度を数える
- 20. モジュールハンドルが与えられたモジュールのセグメントを列挙する
- 21. 与えられた文字列中の母音数を数える
- 22. PHP:与えられた文字列からサブ文字列を取り出す
- 23. アルファベット順の文字列の長さでソートする方法は?
- 24. 与えられた文字列のすべての順列を生成するD
- 25. アルファベット "a、b、c"の部分文字列 "ab"& "ba"と同じ数のすべての文字列の言語が標準ですか?
- 26. 与えられた文字列のPython順列
- 27. アルファベット以外の文字で文字列を分割する
- 28. 与えられたツリーのポストオーダーデータの文字列を作る
- 29. 与えられた文字列から与えられた文字列をPHPを使って数える方法
- 30. PHPは、例えば、文字列、与えられた配列
サイズ 'n'の補助リストを取り除くことはできますか? – Michael
@Michaelは4e6が示唆するように 'fill'を使用します。私はこれを反映するために私の答えを編集します。 – Owen
素晴らしい!新しいバージョンをありがとう。 – Michael