變位詞

變位詞

中等

簡介

在車庫拍賣上,你以便宜的價格找到一台漂亮的復古打字機!你興奮地衝回家,塞進一張紙,開始打起字來。不過,當你檢查印出來的東西時,興奮感就消退了:所有的字都亂七八糟!例如,它印出「stop」而不是「post」,印出「least」而不是「stale」。你小心翼翼地再試一次,但這次它印出的是「spot」和「slate」。經過一番實驗,你發現每個字母印出前都有隨機的延遲,把順序打亂了。現在你總算明白為什麼他們賣得這麼便宜了吧!

你意識到這個怪毛病讓你能產生重組字,也就是把另一個詞的字母重新排列後所形成的詞。對這個發現很滿意,你就花了接下來一整天的時間產生數百個重組字。

說明

你的任務是:給定一個目標字和一組候選字,找出候選字中所有由目標字重組而成的子集合。

重組字是指把一個字的字母重新排列,形成另一個新的字。例如"owns"就是"snow"的重組字。 一個字本身並不算是自己的重組字。例如"stop"不是"stop"的重組字。

目標字和候選字都是由一個或多個 ASCII 字母(A-Z和a-z)組成的字。 小寫字母和大寫字母視為相同。例如"PoTS"是"sTOp"的重組字,但StoP不是sTOp的重組字。 重組字集合是候選字集合中,所有由目標字重組而成的子集合(順序不拘)。 重組字集合中的字,字母大小寫應該和候選字集合中的相同。

給定目標字"stone"和候選字"stone"、"tones"、"banana"、"tons"、"notes"、"Seton",重組字集合是"tones"、"notes"、"Seton"。

本題專屬說明

你必須依照候選字詞列出的順序回傳重組字。

透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Scheme Exercism

準備好開始 變位詞 了嗎?

註冊 Exercism,透過 39 個練習 和真人引導來學習並精通 Scheme,全部免費。