我想創建一個映射,其中鍵是字符串中的字符,每個鍵的值都是字符串中給定字符位置的列表。如何在Clojure中創建字符串索引的映射?
0
A
回答
4
我確信有幾種解決方案。我的第一個想法是使用map-indexed
獲取[index character]
的列表,然後reduce
集合到地圖中。
(defn char-index-map [sz]
(reduce
(fn [accum [i ch]]
(update accum ch conj i))
{}
(map-indexed vector sz)))
(char-index-map "aabcab")
;;=> {\a (4 1 0), \b (5 2), \c (3)}
6
短一點的變體:該指數在這裏
(defn process [^String s]
(group-by #(.charAt s %) (range (count s))))
user> (process "asdasdasd")
;;=> {\a [0 3 6], \s [1 4 7], \d [2 5 8]}
通知進行排序
+0
另一種解決方案具有反向排序索引,這對我想解決的問題可能更好。 –
相關問題
- 1. Logstash在創建時映射索引
- 2. 如何在Clojure中通過索引修改字符串?
- 3. 如何創建字符串的靜態映射 - >陣列
- 4. ElasticSearch字段在索引時默認映射爲字符串
- 5. 如何在sql中爲字符串列創建索引?
- 6. 爲索引創建映射時出錯
- 7. 在PowerShell中,如何將列表映射到搜索字符串
- 8. 如何在SML中的字符串中映射每個字符
- 9. 如何通過索引在c#中動態地映射字符串?
- 10. 如何在Clojure中映射PersistentHashMaps的PersistentVector?
- 11. 如何在Clojure中創建一個字符串列表?
- 12. 如何在電梯的映射器ORM中創建字符串主鍵?
- 13. 如何在FPDF中爲Khmer Unicode創建字符映射?
- 14. 映射字符串
- 15. 所有日誌的字段更改映射創建的索引
- 16. 如何爲動態搜索字符串創建索引
- 17. 創建一個索引號字符串
- 18. R:創建索引字符串向量
- 19. Noob,創建字符串方法的索引和子字符串
- 20. 哈希+映射或索引+映射來濃縮使用字符串
- 21. 如何通過在scala中映射來創建字符串序列?
- 22. 如何映射Dart中字符串中的每個字符?
- 23. 如何映射Io中字符串中的字符?
- 24. 如何從Java中的字符串(更復雜)創建一個鍵/值映射
- 25. 如何在Lucene中索引字符串?
- 26. 映射JSON字符串在Java中映射或HashMap的領域
- 27. Elasticsearch索引模板丟失原始字符串映射
- 28. ElasticSearch - 顯式映射中的字符串字段的索引和存儲屬性
- 29. RestKit:如何映射任意字符串
- 30. 如何通過ObservableCollections映射字符串
你嘗試過這麼遠嗎?分享你所擁有的東西,很清楚你遇到了什麼問題。 –
@Piotrek Bzdyl - 我被困在Clojure的不變性中。 –
通常,當您想從現有結構創建新結構'reduce'或'loop/recur'時,這是一個很好的起點。棘手的部分是弄清楚,如果已經有一個更高階的函數或組合已經做了你想要做的。 – Scott