iT邦幫忙

2022 iThome 鐵人賽

DAY 13
0
Modern Web

clojure 刷刷鍋系列 第 13

Clojure 肉片 -第 13 塊

  • 分享至 

  • xImage
  •  

【心得】

  1. 之前用過 sort,只能排序 collection 中的數字,今天學到當 collection 中是 string 又想要直接以各自 length 排序時,就可以用到 sort-by

【今日湯底】

Simple, given a string of words, return the length of the shortest word(s).

String will never be empty and you do not need to account for different data types.

(必須通過以下測試)

(ns kata.test
  (:require [clojure.test :refer :all]
            [kata         :refer [find_shortest]]))

(deftest basic-tests
  (is (= (find_shortest "bitcoin take over the world maybe who knows perhaps") 3))
  (is (= (find_shortest "turns out random test cases are easier than writing out basic ones") 3))
  (is (= (find_shortest "lets talk about javascript the best language") 3))
  (is (= (find_shortest "i want to travel the world writing code one day") 1))
  (is (= (find_shortest "Lets all go on holiday somewhere very cold") 2))
)

【我的答案】

(ns kata)

(defn find_shortest [words]
  (->> (clojure.string/split words #" ")
    (sort-by count)
    first
    count)
  )

思路:

  1. split 後找到可以 sort string length 的做法
  2. 再取出第一個值看 count

【其他人的答案】

(ns kata
  (:require [clojure.string :as str]))

(defn find_shortest [words]
  (->> (str/split words #" ")
       (map count)
       (apply min))
  )

上一篇
Clojure 肉片 -第 12 塊
下一篇
Clojure 肉片 -第 14 塊
系列文
clojure 刷刷鍋30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言