在車庫拍賣上,你以便宜的價格找到一台漂亮的復古打字機!你興奮地衝回家,塞進一張紙,開始打起字來。不過,當你檢查印出來的東西時,興奮感就消退了:所有的字都亂七八糟!例如,它印出「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"。
每一組單字都以一個以 null 結尾的字串表示,每個單字的結尾都有一個換行字元。
你必須依照候選單字中列出的順序回傳這些重組字。
舉例來說,"tones\nnotes\nSeton\n"
| 暫存器 | 用途 | 型態 | 說明 |
|---|---|---|---|
$a0 |
輸入 | 位址 | 以 null 結尾的目標字串,不含換行 |
$a1 |
輸入 | 位址 | 以 null 結尾的候選字串,每個單字後面都有換行 |
$a2 |
輸入/輸出 | 位址 | 以 null 結尾的輸出字串,每個單字後面都有換行 |
$t0-9 |
暫時 | 任意 | 用於暫存 |